fscanf什么时候才会停止,fscanf遇到什么停止

http://www.itjxue.com  2023-01-17 09:55  来源:未知  点击次数: 

如何让fscanf自动在文件读结束时候停止执行

用 feof(fp) 判断 读到了文件结束符 EOF

数据量大的时候用此法保险。

while (!feof(fp)) {

if ( fscanf(fp...)==EOF ) break;

}

或:

while ( fscanf(fp,...) !=EOF ){}

数据量大的时候(成千上万行),不保险。

fscanf(fp,"%d",&x);该函数怎知每次读取多少字节长度的数据呢?是判断变量x的类型吗

fscanf()函数不会知道要读多少字节的数据,碰到空格或者不匹配的字符才停止

比如文件内容是:

12345678912345

fscanf(fp,"%d",x);

会读到这个数字结束导致x 溢出

如果文件内容是

123abc

或者是

123 234

那么x就是123

所以用fscanf()读取文件时要事先知道文件的数据组织方式

fscanf遇到空格会停止吗?

默认分隔符是空格空白,会停。

如果你用别的

分隔符,例如

逗号分隔数字

for

(i=0;i99;i++)

fscanf(fin,"%d,

",

a[i]);

fscanf(fin,"%d",

a[99]);

逗号后数字前的空白就不停

[1,白白23,白白4,...]

数字后逗号前的空白要停。

[1白,23,4,...]

字符串输入,用空白作分隔符。

运行fscanf时停止运行!!!!

如果Info是个已定义的与代码匹配的有10个元素的结构体数组,那只要把fp = fopen(" file_1.txt ", "r");中的文件名file_1.txt前后的空格删除就应该可以了……

scanf 什么时候停止读取(读取到什么字符时停止)?

scanf fscanf 都是按格式串的指示读,提供给他的数据流要按照严格的格式

getc fgetc 这两个功能上没区别,遇到文件尾或出错是返回EOF

gets 是旧的不安全版本,尽量避免使用; fgets 读回一行,遇到EOF或\n结束,有时候会在缓冲区写入\n,但是并不是总如此,在缓冲区最后一个字符后面写入'\0'

getchar getch 前一个需要回车才接受输入,后一个则不需要,而且后一个不会在输出设备显示输入的字符;前一个是stdio.h中定义的,后一个则是conio.h中定义的。后一个因为不是标准C的,所以不是所有编译器都支持

(责任编辑:IT教学网)

更多

推荐其他源码文章