【问题标题】:Fscanf inside while keeps crashing?Fscanf 里面,而不断崩溃?
【发布时间】: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


【解决方案1】:

输入中的单词很可能超过 50 个字符。

检查这一点的最简单方法是将代码中出现的所有[50] 临时更改为输入文件大小,这样就足够大了。

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2015-08-08
    • 2018-05-24
    • 2013-10-17
    相关资源
    最近更新 更多