2017-03-16 52 views
0

我很困惑,为什么会发生此错误。 我的代码执行罚款,结果是我想要的东西,但是,编译与命令我的C文件: “GCC -std = C99 -Wall -o assignment2 assignment2.c”C警告与字符数组:“警告:数组下标具有类型'字符'”

下面是代码:

enter image description here

下面是输出错误:

enter image description here

我只想用这个,但我敢肯定,它可能有一些原因的埃罗r显示,也因为我的任务标记可能想要接受它,如果编译时出现此警告。

+2

为什么'i'一个'char'? –

回答

4

如果使用i一个柜台,使用的int代替char

int i = 0; 

这将解决这个问题。

而且,c应该是一个int,因为fgetc()可以返回EOF这是一个int,和一般的fgetc()返回类型为int,因此,你应该使用intc了。

你的代码应该然后

char word[500]; 
int i = 0; 
int c; 

while (((c = fgetc(fp)) != EOF) && (c != '\n')) { 
    word[i++] = (char) c; 
} 
word[i] = '\0'; 
+1

@KeineLust,代码有未定义行为,谢谢编辑。 –

+0

噢,我正在尝试这个以及来自其他在线答案,并最终失去了这个小错误。非常感谢您为我指出这一点。 – jjyj

+2

@jjyj这就是* Stack Overflow *的意思,它很有帮助。但请记住,下次应该发布实际代码而不是图像。 –

-1

i应当进行评估,以便i < 500是fullfilled

相关问题