小编dra*_*in_的帖子

在 C 中将 EOF 作为字符读取

我知道这可能听起来很愚蠢,但是我怎样才能退出这个循环呢?

#include <stdio.h>
#include <stdlib.h>

int main(){
    char c;
    do {
        c = getchar();
        printf("%c", c);
    }while(c != EOF);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在读一本书并尝试做以下练习:“验证表达式 getchar() != EOF 是 0 或 1” 如果我读取存储在整数值中的 EOF 值,它将等于 -1 但如果我尝试将 -1 作为字符捕获,那就太傻了。据我了解 EOF 是一个未分配给任何其他 char 的值。

任何人都可以帮忙吗?

edit1:我知道 c 应该是一个 Integer ...我有意将其读为 char 。

编辑2:

int main(){
    int c;
    while((c = getchar()) != EOF)
    {
        printf("%d\n", c);
    }
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

----->

int main(){
    int c;
    int i = 0;
    char str[2];
    while((c = getchar()) …
Run Code Online (Sandbox Code Playgroud)

c eof getchar

0
推荐指数
2
解决办法
634
查看次数

标签 统计

c ×1

eof ×1

getchar ×1