【发布时间】:2015-05-25 21:08:36
【问题描述】:
代码看起来与之前的分配几乎相同,但它无法编译。
问题似乎出现在while(feof!(in))之前
错误:在 '!' 之前应为 ')'令牌
代码:
#include <stdio.h>
int main (void)
{
int water_arr[30],monthnum=0;
FILE* in;
in = fopen ("water.txt","r");
while (feof! (in))
{
fscanf(in, "%d", &water_arr[monthnum]);
monthnum = monthnum + 1;
}
for (monthnum = 0; monthnum < 30; monthnum++)
{
printf("%d",water_arr[monthnum]);
}
return (0);
}
【问题讨论】:
-
尝试向橡皮鸭解释每个令牌在
feof! (in)中的作用 -
我认为您的意思是
!feof(in)而不是feof! (in)。 -
一旦你弄清楚了,read this
-
不要使用
while (feof! (in))。检查fscanf()的返回值以确定代码是否应该退出循环。一旦monthnum搜索 30 次,也退出循环。打印循环应该只达到读取的值的数量,可能小于 30。