c - 循环永不停止

标签 c while-loop infinite-loop

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

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

关于c - 循环永不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37094475/

相关文章:

c++ - C/C++ : How to create matlab like structure array

php - Run While 循环遍历列的所有不同值

c - scanf 函数无限接受值

c++ - 如何初始化 GLfloat 数组?

c - 为什么插入的用户值与文件值不匹配?

c - 函数和字符串,检查输入字符串是否匹配

java - Java 中的 while 循环不会对文档的最后一行执行操作

java - 如何在 while 循环中引用按钮监听器?

java - 无限递归嵌套对象

c - 验证 do-while 循环中的输入类型