【发布时间】:2012-08-10 06:33:29
【问题描述】:
这是我的代码。我用终端在 ubuntu 中运行它。当我在终端中输入 (a CtrlD) 时,程序并没有停止而是继续等待我的输入。
CtrlD不等于unix中的EOF吗?
谢谢。
#include<stdio.h>
main() {
int d;
while(d=getchar()!=EOF) {
printf("\"getchar()!=EOF\" result is %d\n", d);
printf("EOF:%d\n", EOF);
}
printf("\"getchar()!=EOF\" result is %d\n", d);
}
【问题讨论】:
-
这不是递归。在您 EOL 输入之前,这只是一个无限循环。递归 = 函数直接调用自身或在其他一些中间步骤之后调用自身。
-
用 gcc 编译,点击
^D为我停止了循环。 -
@JonLin 只需输入 ^D 。它也适用于我。但是,当输入为 (a^D); 时,循环并没有停止。
-
@MarcB 我犯了一个愚蠢的错误。感谢您的帮助。