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



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

我的代码是:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
while (c != 'n' && c != EOF) {
scanf("%c",&c);
printf("%dn",c);
}
}

输入时:

Hi!
Line 2

输出应为:

72
105
33
10
76
105
110
101
32
50
10

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

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

好吧,您已经在阅读"Enter"(即n(。事实上,您也在使用它来终止while循环。因此,您的程序将在读取第一行后停止。换言之,如果您希望能够读取多行,请取消对whilen的检查

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

BTW:我认为getc是一个比scanf更好的函数。

应该这样做:

#include <stdio.h>
int main(void)
{
int c;
while((c = getc(stdin)) != EOF)
{
printf("%dn",c);
}
}

相关内容

最新更新