精华内容
下载资源
问答
  • 在用ifstream循环(eof判断是否结束)读取文件中字符时,发现最后一个字符读取了两遍,原错误代码: char ch; ifstream infile("input.txt",ios::in); while(!infile.eof()) { infile>&...

    【mie haha 的博客】转载请注明出处(万分感谢!):
    https://blog.csdn.net/qq_40315080/article/details/88176331

    在用ifstream循环(eof判断是否结束)读取文件中字符时,发现最后一个字符读取了两遍,原错误代码:

    char ch;
    	ifstream infile("input.txt",ios::in);
    	while(!infile.eof())
    	{
    		infile>>ch;
    		cout<<ch;
    	}
    

    输入:
    在这里插入图片描述
    运行输出:
    在这里插入图片描述
    修改循环,改成用get先获取字符,判断一下是否结束再输出就可以避免最后一个字符读取两遍:

    for(;;)
    	{
    		infile.get(ch);
    		if(infile.eof())break;
    		cout<<ch;
    	}
    

    或者循环条件改用infile.peek()判断

    while(infile.peek()!=EOF)
    	{
    		infile>>ch;
    		cout<<ch<<" ";
    	}
    

    运行输出:
    在这里插入图片描述

    展开全文
  • 在java如何键盘中读取一个字符

    万次阅读 多人点赞 2016-11-09 18:53:09
    在java中字符字符串用到的非常多,那我们如何键盘中读取一个字符呢?  Scanner s = new Scanner(System.in);  String str = s.nextLine();  这时候输入的str是一个字符串而不是字符,  char ch = str....

      在java中字符和字符串用到的非常多,那我们如何从键盘中读取一个字符呢?

      Scanner s = new Scanner(System.in);

      String str = s.nextLine();

      这时候输入的str是一个字符串而不是字符,

      char ch = str.charAt(0);

      经过这样ch就是一个字符而不是字符串了!

      

    展开全文
  • 从文件中读取数据并进行字符拆分 应用到文件读取,数组比较(冒泡),指针、子函数、字符串等知识 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; #define ...

    从文件中读取数据并进行字符拆分
    应用到文件读取,数组比较(冒泡),指针、子函数、字符串等知识

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define SIZE 200

    int openfile(char *original);//声明一个函数
    void getdata(char *original,int *nowdata); //字符分割函数声明
    int count(char *original);
    void sortdata(int *nowdata,int n);

    void writefile(int *nowdata,int n);

    int main()
    {

    char str[SIZE];
    int nowdata[SIZE];
    openfile(str); // 打开文件并进行原始文件数据的读取
    getdata(str,nowdata); // 字符分割函数引用
    int n=0;
    n=count(str);
    printf("\n去掉逗号后初始文本数据个数:%d\n",n);
    int *p;
    p=nowdata;
    sortdata(p,n);
    
    writefile(nowdata,n);
    
    return 0;
    

    }

    // 打开原始文件,并判断是否成功,打开若成功,则输入到数组中,并记录下有多少个数
    int openfile(char *original)
    {
    FILE *DataFrom; // 定义一个文件指针
    char OriginalFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位
    char ch; // 接收数据
    int count=0; // 用于统计文本中数据的个数(‘,’+1个)
    int i=0;
    // 打开文件&&判断是否打开成功
    if((DataFrom=fopen(“OriginalFileName.txt”,“r”))==NULL)
    {
    printf(“fail open OriginalFileName!\n”);
    exit(0);
    }

    	printf("初始文本文件如下:");
    
    		while(!feof(DataFrom))
    	{
    			ch=fgetc(DataFrom);
    				if(ch==',')
    				count++;
    			*(original+i)=ch;
    			i++;
    			putchar(ch);
    		
    	}
    		printf("\n初始文本中数据的个数:%d\n",count+1);
    		printf("\n");
    		//fclose(OriginalFileName);
    		return count+1;
    		
    }
    

    int count(char *original)
    {
    FILE *DataFrom; // 定义一个文件指针
    char OriginalFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位
    char ch; // 接收数据
    int count=0; // 用于统计文本中数据的个数(‘,’+1个)
    int i=0;
    // 打开文件&&判断是否打开成功
    if((DataFrom=fopen(“OriginalFileName.txt”,“r”))==NULL)
    {
    printf(“fail open OriginalFileName!\n”);
    exit(0);
    }

    	//printf("初始文本文件如下:");
    
    		while(!feof(DataFrom))
    	{
    			ch=fgetc(DataFrom);
    				if(ch==',')
    				count++;
    			
    			i++;
    	}
    			
    		return count+1;
    }
    

    void getdata(char *original,int nowdata) // 字符分割函数使用
    {
    char
    token = strtok(original, “,”);
    int j=0;
    printf(“分割以后的字符如下:\n”);
    while( token!= NULL )
    {
    nowdata[j] = atoi(token);
    token = strtok(NULL, “,”);
    printf("%d\t",nowdata[j]);
    j++;

      }
    

    }

    void sortdata(int x[],int n)
    {
    int i,j,k;
    int temp;
    for(i=0;i<n-1;i++)
    {
    k=i;
    for(j=i;j<n;j++)
    if(x[j]<x[k])
    k=j;
    if(k!=i)
    {temp=x[i];x[i]=x[k];x[k]=temp;}
    }

    printf("冒泡以后的数据:");
    for(i=0;i<n;i++)
    {
    	printf("%d\t",x[i]);
    }
    printf("\n");
    

    }

    void writefile(int *nowdata,int n)
    {
    FILE *DataTo; // 定义一个文件指针
    char AfterFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位
    // 打开文件&&判断是否打开成功
    if((DataTo=fopen(“AfterFileName.txt”,“wb”))==NULL)
    {
    printf(“fail open OriginalFileName!\n”);
    exit(0);
    }

    fwrite(nowdata,4, n,DataTo);     
    	fclose(DataTo);
    

    }

    展开全文
  • 例:编写一个程序,以一个字符和任意文件名作为命令行参数。然后输入字符所在的整行内容。(此题目是我为了讲解而自己想的,若有不足之处请多指教) 代码如下: #include <stdio.h> #include <stdlib.h>...

    让我们从一道例题来分析,分析我都写在注释里面了。
    例:编写一个程序,以一个字符和任意文件名作为命令行参数。然后输出字符所在行内容。(此题目是我为了讲解而自己想的,若有不足之处请多指教)
    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //这个函数的返回值用来作为主函数中if语句是否输出
    int has_ch(char ch, const char *line);
    int main(int argc, char *argv[])
    {
    	FILE *fp;//文件指针
    	char a;
    	char b[256];//用来存储从文件中读取的内容,因为一行最大为能容纳256字符
    
    	a = argv[1][0];//读取给定的字符
    	//这个if语句用来判断文件是否已经打开,这条语句请不要缺少。
    	//我们现在是以打开一个文件来做例子,文件请自行设置
    	if ((fp = fopen(argv[2], "r")) == NULL){
    		printf("文件没有被打开\n");
    		exit(EXIT_FAILURE);//这条语句是退出程序的意思
    	}
    	//while循环条件的意思是从fp这个文件指针中最大能读取256个字符给b这个数组,
    	//当然如果你文件中一行不够256个字符的话,fgets函数会因为读取到换行符
    	//而结束,当读到文件结尾时fgets函数返回的NULL会退出循环。
    	while (fgets(b,256,fp))
    	{
    //if语句通过has_ch函数的返回值来判断是否打印读取的字符,也就是通过这个函数
    //来判断是否满足题目条件而打印字符。
    		if (has_ch(a, b))
    		//条件成立就打印读取到的一整行,不成立就开始下一行的判断
    			fputs(b, stdout);
    	}
    	fclose(fp);//程序完成后也不要忘关闭文件哦,养成一个良好的习惯。
    	return 0; 
    }
    int has_ch(char ch, const char *line)
    {
    //这个while循环通过指针的形式来遍历查到是否有特定的字符ch,有的话就返回1使
    //if语句进行从而打印有特定字符的一行,而这一行没有特定字符就返回0跳过主函数
    //的jf语句(ch是特定字符,line指针是主函数传过来的一行字符串)
    	while (*line)
    	if (ch == *line++)
    		return 1;
    	return 0;
    }
    

    因为每个人的需求不一样,所以这个例子希望能够给你们一些启发,觉得还不错的话,麻烦给点个赞吧。

    展开全文
  • 字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件写入一个字符。主要使用两个函数:fgetc()和fputc()。 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符...
  • 从文件中逐个读取字符

    千次阅读 2014-01-13 16:09:49
    #include #include #include void main() ... char ch;  if((fp=fopen("string.txt","rt"))==NULL)  {  printf("Cannot open file strike any key exit!");  getch();  exit(0);  }  ch=fgetc(fp);  
  • 分三步,首先将字符从文件中读取出来,然后统计,最后输出到屏幕上。代码如下 // // main.cpp // 11年第7题 // // Created by 布布 on 2020/5/10. // Copyright © 2020 布布. All rights reserved. // #...
  • 一个文本文件字符方式打开,并且以字符方式写入另一个文本#define _CRT_SECURE_NO_WARNINGS #define PATH "C:\\Users\\michael\\Desktop\\mima.txt" #define WPATH "C:\\Users\\michael\\Desktop\\mytxt.txt" ...
  • 字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件写入一个字符。主要使用两个函数:fgetc()和fputc()。字符读取函数 fgetcfgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。它...
  • Getchar函数标准输入读取读取一个字符并返回它的值。如果输入不再存在任何字符,函数就会返回常量EOF(在stdio.h定义),用于提示文件的结尾。 例:int num = 0;  Int ch;  While(num = 0) while(...
  • 在程序创建一个文本文件666.txt,键盘上输入一串字符,然后再读取文件并将文件文本内容显示在屏幕上。 */ class test3 { public static void main(String[] args){ char ch; int data; try( ...
  • 今天写程序时要把文件中字符读取出来,发现使用ifstream输出文件中字符时,文件最后一个字符多输出了一次,例如文件的内容是“AAB”,但输出时是现实“AABB”,上网了查了一下,发现问题是出在判断文件的eof()...
  • 字符形式读写文件

    2017-02-21 18:55:41
    字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件写入一个字符。主要使用两个函数:fgetc()和fputc()。 字符读取函数fgetcfgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。它...
  • 2 //从文件读取包含数字和字母字符串,统计每个字符出现的次数 3 //输出格式,字符:次数并输出到另外一个文件 4 //需要在D盘下新建文件text.in 5 #include<stdio.h> 6 #include<stdlib.h> 7...
  • 一次读写一个字符(fgetc fputc)#include "stdafx.h" #if 0 写往往比较简单,读略微复杂一些,需要判断何时读到文件结尾 所有对文件的读,进行判文件结尾都通过相应函数的返回值(EOF) 来进行判断,尽量...
  • /*编写一个程序,使其标准输入读取字符,直到遇到文件结尾。对美个字符 程序需要检查并报告改字符是否是一个字母。如果是报告字母在字符的位置,否则返回-1*/ #include &lt;stdio.h&gt; #include &...
  • #include<stdio.h> #include<string.h> #include<stdlib.h>//使用动态内存分配函数malloc 和 realloc要用。 ... void copy_s(char *P1, char *p2, int m);... char *p1, *p2, ch; //p1为原字符串,...
  • JAVA中读取文件转换为字符

    万次阅读 2016-10-19 09:41:10
    以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 当然也是可以读字符串的。 *//* 貌似是说网络环境比较复杂,每次传过来的字符是定长的,用这种方式?*/public String readString1(){ try ...
  • Java将字符串写入文件与将文件内容读取字符

    万次阅读 多人点赞 2017-04-06 22:32:17
    字符串写入文件 方法 public void WriteStringToFile(String filePath) { try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutputStream(file));
  • 话不多说,看代码: #include <fstream> void read(){ //关键步骤,使用wifstream,并设置locale wifstream in;... //读取的时候,使用wstring和wchar_t来接收 wstring line = L""; getli...
  • #include ...并从文件中读出显示。 char ch = NULL;//存放用户输入的字符 char fileName[10];//存放用户输入的文件的文件名 FILE* fp = NULL;//指向用户写入字符的文件 //文件准备 prin
  • 键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test保存,输入的字符以!结束 #include <stdio.h> #include <stdlib.h> /* run this program using the ...
  • 实现--从文件中随机提取一个字符

    千次阅读 2010-08-10 13:36:00
    #include #include #include #include #define random(x) (rand() % x) //产生x内的随机函数 #define RAND_N 1000 //自定义随机器 void my_random(ch
  • 练习:89有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个文件C。...97键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。...
  • 学习C有段时间了,但是C++刚开始学,在看到文件操作时遇到了读取文本文件中带空格的字符串的问题。现总结如下:ifstream类定义的对象用法与cin非常相似,连类的方法都很相似,假设定义 ifstream inFile;比如:cin...
  • string.txt内容: jdjddodkfjfksjsmhd3746882rt,ifmf83yebiweehne33oorurownfueeprorj rortuwu7368397 代码: file=open("D:/tool/Python35/example/string.txt",'r') ...#print(type(list1)
  • 一、代码实现 import java.io.*; import java.util.*;...2.循环读取文件里的字符,用一个String类型变量接收(newValue) 3.把newValue变成字符数组 char[] ch = newValue.toCharArray(); 4.遍历ch,将ch中所有的
  • #define _CRT_SECURE_NO_WARNINGS #define PATH "C:\\Users\\...//pFile指向的路径文件中读取一个字符ch putchar (ch); //默认输出到屏幕 } fclose(pFile); pFile = NULL; } system( "pause" ); }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,706
精华内容 32,282
关键字:

从文件中读取一个字符给ch