循环永不停止

Loop never stops

我有这个程序可以逐个字符地读取文件并将其打印在屏幕上:

#include<stdio.h>

int main()
{
    unsigned char mychar;
    FILE *fp;
    fp=fopen("test.txt", "r");
    while((mychar = getc(fp))!=EOF)
        printf("%c", mychar);
    fclose(fp);
    return 0;
}

它打印文件,但随后继续无限循环。 你能帮帮我吗?

EOF 具有价值 -1 那么,为什么要将 mychar 声明为 unsigned char

请更改为:

int main()
{
    int mychar;
    FILE *fp;
    fp=fopen("test.txt", "r");
    while((mychar = getc(fp))!=EOF)
        printf("%c", mychar);
    fclose(fp);
    return 0;
}