带有字符数组的 C 警告:"warning: array subscript has type 'char'"

C warning with char array: "warning: array subscript has type 'char'"

我很困惑为什么会出现这个错误。 我的代码执行得很好,结果正是我想要的,但是在使用命令编译我的 c 文件时: "gcc -std=c99 -Wall -o assignment2 assignment2.c"

代码如下:

这里是输出错误:

我只想使用它,但我确定它可能有某些原因会显示错误,而且如果编译时出现此警告,我的赋值标记可能想要接受它。

如果您使用 i 作为计数器,请使用 int 而不是 char

int i = 0;

这将解决问题。

而且,c 应该是一个 int,因为 fgetc() 可以 return EOF 这是一个 int,并且在一般来说,fgetc() 的 return 类型是 int,因此你也应该对 c 使用 int

你的代码应该是

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

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

i 应该被评估,以便 i < 500 是 fullfilled