我试图编写一个程序,该程序从循环内的标准输入读取字符,并将每行的十进制值写入标准输出,直到发生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 作为字符?
答案 0 :(得分:1)
如何获得2行作为输入并读取“ Enter”作为字符?
好吧,您已经在阅读“ Enter”(即\n
)。实际上,您还使用它来终止while
循环。因此,您的程序将在读取第一行后停止。换句话说-如果您希望能够读取多行内容,请删除\n
while
支票
还要注意,程序在初始化之前使用了c
。您不应该做的事。
顺便说一句:我认为getc
比scanf
更好。
类似的事情应该做:
#include <stdio.h>
int main(void)
{
int c;
while((c = getc(stdin)) != EOF)
{
printf("%d\n",c);
}
}