【发布时间】:2017-01-26 22:34:54
【问题描述】:
在课堂上,我遇到了这个代码sn-p
for (numlines = 0, (fp=fopen("thefile",'r')); feof(fp); numlines++ ) {
fgets(fp, buffer, sizeof(buffer), fp);
...
}
在for循环头中,可以初始化numlines和fp这两个东西,对吧?
然后在for循环体中,
fgets(fp, buffer, sizeof(buffer), fp);
这让我很困惑。我认为fgets() 函数采用这些参数
char *fgets(char *str, int n, FILE *stream)
知道 2 fps 在做什么吗?
【问题讨论】:
-
一个错误?那甚至不应该编译。除非代码重新定义
fgets或做一些其他的诡计(这会很糟糕)。 -
那个代码 sn-p 是纯垃圾,句号。
-
你在哪里遇到的?也许发现问题是练习的目标。
feof(fp)也是错误的。 -
@namesake22 您可以找到任何质量差的代码。但是为什么要讨论呢?:)
-
fopen("thefile",'r')应该肯定引起编译器警告。