【发布时间】:2015-05-18 11:45:29
【问题描述】:
我正在为我的 C 编程课做作业。该问题指出“编写一个程序,将输入作为字符流读取,直到遇到 EOF”。我在我的 macbook 上使用 Xcode,我知道让程序遇到 EOF 的唯一方法是使用 ctrl + D 或 ctrl + Z。但它会完全退出我的程序。
例如我有这个代码:
int main()
{
int ch;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
printf("%d",ch);
return 0;
}
在循环之后(在我按键盘上的 ctrl + D 之后)执行 printf("%d",ch) 的代码是否存在?
【问题讨论】:
-
在按 Ctrl-D 之前,您必须至少按一次 Enter。
-
@PaulGriffiths 真的是这样吗?
-
@dattran 它应该打印 -1 或其他东西。你确定你没有因为 print 语句中缺少
\n而错过了 o/p 吗? -
输出last输入字符的代码,恰好是EOF,因此是-1。
-
要打印输入的ASCII码,将
putchar(ch);改为printf("%d," ch);