当没有找到新行时,fgets不返回NULL

时间:2010-11-30 22:04:01

标签: c crash new-operator line fgets

我正在使用while循环:

  

while(fgets(pclientRow,1024,f)!= NULL)

在其他课程中它可以正常工作,但在其中一个课程中,当我正在阅读时 逐行归档,即使行结束也不会离开循环,我在调试器中看到了。

为什么?它之前甚至在那个班级工作,现在我不知道为什么它继续带来 空行,直到它的诅咒..

任何想法?

2 个答案:

答案 0 :(得分:3)

标准ANSI C函数中的fgets,请参阅文档: 这里fgets读取最大值。 1023个字符,直到下一个'\ n'或EOF。 您的行超过1023个字符,或者最后一行没有终止换行符。

答案 1 :(得分:0)

你可以通过在你的while循环中放置这样的东西来解决这个问题。

if((int)strlen(pclientRow)== 1)   打破;