个人的愚蠢做法,举例以示意
while(ch!=EOF
{
fscanf(fp,"%d\n%s\n%s\n%s\n\n",&tact[a].num,&tact[a].name,&tact[a].phone,&tact[a].note);
ch=fgetc(fp);
}
请指教...谢谢
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
扩展资料:
应用
档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
哈哈 谢谢你,尝试如下代码,读取成功!
while(fscanf(fp,"%d\n%s\n%s\n%s\n\n",&tact[a].num,&tact[a].name,&tact[a].phone,&tact[a].note)!=EOF)
++a;
相互帮助嘛。满意请采纳
本回答被提问者和网友采纳