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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让fscanf自动在文件读结束时候停止执行相关的知识,希望对你有一定的参考价值。

fscanf调用成功返回1,那么如何让它自己读文件,并且在文件内容读完时候不在读了??
程序: while(fscanf(fp,"%s%s%f",&(stu[i].id),&(stu[i].name),&(stu[i].avg)) && i<5)
i++;
上面是用i<5来做结束条件,曾经试过这样的:
while(fscanf(fp,"%s%s%f",&(stu[i].id),&(stu[i].name),&(stu[i].avg)))
i++;
本来想应该可以,但是程序执行的时候确出错,一直停留在循环,那么,如何让fscanf自动在文件读结束时候停止执行?

用 feof(fp) 判断 读到了文件结束符 EOF
数据量大的时候用此法保险。

while (!feof(fp))
if ( fscanf(fp...)==EOF ) break;


或:
while ( fscanf(fp,...) !=EOF )
数据量大的时候(成千上万行),不保险。
参考技术A fscanf如果读取到文件尾会返回NULL, 可以从这点判断是不是到文件尾.
while(!fscanf(stream, "format", ...));
这样就可以把一个文件的内容读取完毕.
stream是输入流, 即文件指针.
"format"是格式字符串, 即用于写%s, %d的地方.
即后面跟的不定参数.
参考技术B 检查文件是否结束,标志是EOF

WPF中想要让一个按钮单击事件结束后自动再单击这个按钮,也就是让单机事件连续反复执行,应该如何实现?

初学C#只能做到哪儿问到哪儿了

在单击事件的末尾写单击的话感觉会出错
或者有没有做一个后台进程,让它执行完单机事件后立刻重复执行的方法?

参考技术A public MainWindow()

InitializeComponent();
Button btn=new Button();
btn.Click+= BtnOnClick;


private void BtnOnClick(object sender, RoutedEventArgs e)

//执行操作

BtnOnClick(null, null);

//不过你这就是个死循环啊本回答被提问者和网友采纳
参考技术B 调用单击事件相应的方法即可 参考技术C 用for循环代替就行了啊。

以上是关于如何让fscanf自动在文件读结束时候停止执行的主要内容,如果未能解决你的问题,请参考以下文章

C语言的运行文件完了,怎么会自动关闭窗口啊?

C语言文件读取fscanf(),该怎么处理

如何正确调用.bashrc的函数

pythony中子进程如果一定时间不结束就停止应该如何做?

求教:运行bat文件后如何让cmd窗口自动关闭?

WPF中想要让一个按钮单击事件结束后自动再单击这个按钮,也就是让单机事件连续反复执行,应该如何实现?