我很困惑为什么会出现这种错误。 我的代码执行正常,结果正是我想要的,但是在使用命令编译我的c文件时: " gcc -std = c99 -Wall -o assignment2 assignment2.c"
以下是代码:
这是输出错误:
我会使用这个,但我确定它可能有一些原因导致错误显示,并且因为我的赋值标记可能希望在编译时出现此警告时接受它。
答案 0 :(得分:4)
如果您使用i
作为计数器,请使用int
代替char
int i = 0;
这将解决问题。
但是,c
也应该是int
,因为fgetc()
可以返回EOF
int
,并且通常返回fgetc()
{1}}为int
,因此您也应int
使用c
。
您的代码应该是
char word[500];
int i = 0;
int c;
while (((c = fgetc(fp)) != EOF) && (c != '\n')) {
word[i++] = (char) c;
}
word[i] = '\0';
答案 1 :(得分:-1)
i
进行评估,以便i < 500
完整填充