循环从不停止

时间:2016-05-07 22:46:53

标签: c while-loop infinite-loop

我有这个程序用于通过char我的文件读取char并在监视器上打印出来:

#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;
}

它打印我的文件然后继续循环。 你能救我吗?

1 个答案:

答案 0 :(得分:5)

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;
}