编写一个循环程序,从标准输入中读取字符,并将每行的十进制值写入标准输出,直到出现EOF

时间:2018-07-30 14:07:03

标签: c

我试图编写一个程序,该程序从循环内的标准输入读取字符,并将每行的十进制值写入标准输出,直到发生EOF

我的代码是:

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

int main(void)
{
    char c;
    while (c != '\n' && c != EOF) {
        scanf("%c",&c);
        printf("%d\n",c);
    }
}

输入时:

Hi!
Line 2

输出应为:

72
105
33
10
76
105
110
101
32
50
10

如何获得2行作为输入并读取 Enter 作为字符?

1 个答案:

答案 0 :(得分:1)

  

如何获得2行作为输入并读取“ Enter”作为字符?

好吧,您已经在阅读“ Enter”(即\n)。实际上,您还使用它来终止while循环。因此,您的程序将在读取第一行后停止。换句话说-如果您希望能够读取多行内容,请删除\n

中的while支票

还要注意,程序在初始化之前使用了c。您不应该做的事。

顺便说一句:我认为getcscanf更好。

类似的事情应该做:

#include <stdio.h>

int main(void)
{
    int c;
    while((c = getc(stdin)) != EOF)
    {
        printf("%d\n",c);
    }
}