c++中fscanf如何实现循环读取文件中的每一行 35
比如有个a.txt文件,内容为:aabbccddeeffgghhiijjkkmmnnooppqq然后fscanf这个文件,每次只读入一个字段,比如aa,然后再读bb,一直...
比如有个a.txt文件,内容为:
aa bb cc dd
ee ff gg hh
ii jj kk mm
nn oo pp qq
然后fscanf这个文件,每次只读入一个字段,比如aa,然后再读bb,一直读到qq,同时还需判断一行是否读完 ,比如读到dd,如何判断换行,该如何实现 展开
aa bb cc dd
ee ff gg hh
ii jj kk mm
nn oo pp qq
然后fscanf这个文件,每次只读入一个字段,比如aa,然后再读bb,一直读到qq,同时还需判断一行是否读完 ,比如读到dd,如何判断换行,该如何实现 展开
6个回答
展开全部
用fgets不行吗~
更多追问追答
追问
文件很大 用fgets和fscanf哪个效率高点 感觉fgets的效率会比较低 不知道是不是 求解
追答
1、fgets()用法
从流中读一行或指定个字符,
原型是char *fgets(char *s, int n, FILE *stream);
从流中读取n-1个字符,除非读完一行(换行\n),参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针。
2、fscanf的用法
功 能: 从一个流中执行格式化输入
用 法: int fscanf(FILE *stream, char *format,[argument...]);
int fscanf(文件指针,格式字符串,输入列表);
返回值:整型,数值等于[argument...]的个数
空格和多行处理:
(1)我们知道输入字符串格式用%s,字符用%c,当输出字符串中有空格时,(当然可以用fgets)如果这里我们用fscanf读取文本的话,则需要读入空格,我们可以用集合格式符%[^\n],"^"的意思是遇到^后面的字符则停止输入,这样就可以输入空格了。
(2)多行输入时,fscanf(fp,"%[^\n]",szbuff);文件指针在读到"\n"时停止,不能越过,所以后面的内容fp指不到;这时我们解决办法是:fscanf和fgetc连用解决。输入一条fscanf(fp,"%[^\n]",szbuff);后面紧跟一条fgetc(fp);指针即可越过"\n".
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询