c - 使用 "getchar()"和 "EOF"期间出现无意义的输出流

标签 c eof getchar putchar

我一直在尝试使用 getchar()putchar() 并尝试使用 EOF。下面是我一直在尝试的代码片段。

#include <stdio.h>

int main(void)
{
    int c;
    c = getchar();

    while(c != EOF)
    {
        putchar(c);
        printf("\n");
        printf("%d\n", EOF);
        c = getchar();
    }

    return 0;
}

Input: -

a

Expected output: -

a //Due to putchar()

-1 //Value of EOF

//Now the cursor should come in next line and wait for next character.

Output getting in real time: -

a

-1

-1

//Cursor waiting for next character.

我无法理解输出显示 -1 两次的原因。

最佳答案

你的代码注释说

//Now the cursor should come in next line and wait for next character.

但是第二个循环不会等待。它读取已输入的换行符,这由输出中的额外空行显示。

关于c - 使用 "getchar()"和 "EOF"期间出现无意义的输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159591/

相关文章:

c - 用于在 x86 程序集中在 8bpp 位图和 24bpp 位图上绘制实心圆的 Bresenham 算法

c - 字符串已初始化,初始化变量以消除此警告

c - 网络库封装了 Linux 网络系统调用的哪些功能

C 无 EOF 信号

c - 在 while 循环中使用 getchar()

在 C 中使用递归创建二叉树

c++ - C++(C?)中变量的多个预增量操作

c++ - 检查流是否以换行符结尾

关于 fgetc 使用的说明

c - 输入问题 scanf()/getchar()