【发布时间】:2013-09-29 09:44:26
【问题描述】:
我有以下文字:
ASDCASDSA255878 Jack Jhon 1988 12
ASDCASDSA255878 Bill Smith 1977 12
我有以下代码:
inputFile = fopen(fileName,"r");
char id[50];
char fname[50];
char lname[50];
char year[50];
char month[50];
while(fscanf(inputFile, "%s %s %s %s %s\n",id,fname,lname,year,month) == 5)
{
}
fclose(inputFile);
文件被打开,如果我在 while 循环中放置一个 printf 语句,我可以看到它,然后它就崩溃了。
我尝试将 ==5 更改为 !=EOF 但同样的问题。
【问题讨论】:
-
请提供完整(但简短)的代码示例(带有
main()和#include)。您的完整输入只是上面两行,还是还有更多? -
你不应该将无限数据读入缓冲区。为了安全起见,请说
%49s之类的内容。 -
filename很可能包含一些超过 50 个字符的数据
标签: c while-loop scanf