【发布时间】:2020-11-17 02:03:15
【问题描述】:
我正在尝试在 do-while 循环和何时输出带有字母字符的输入流 用户执行 EOF(ctrl+d) 循环停止,输出应该是输入流,但输出只是框中的问号......什么这里有错吗?
#include <stdio.h>
int main(){
char c;
do{
c = getchar();
} while (c != EOF);
printf("Output:\n");
putchar(c);
return 0;
}
【问题讨论】:
-
char c只为一个字符提供存储空间。它不会连接循环中getchar()返回的所有字符。在循环之后,它具有getchar()返回的最后一个字符,即EOF。 -
c 值等于 EOF 状态。所以你基本上是在“试图显示 EOF”。
-
将
putchar(c)放入循环中。 -
另外,你需要声明
int c;
标签: c do-while eof getchar putchar