【发布时间】:2013-12-05 22:44:25
【问题描述】:
我是 C 新手,经过一番研究后无法找到答案。
如果我没有向scanf() 输入任何内容(按回车键),我想终止一个while 循环。以下不起作用...
int data;
while(1){
scanf("%d", &data);
if data == NULL{
break;
}
}
【问题讨论】:
-
检查
scanf的返回值。 -
您不能输入“无”。除了
之外,您不能输入任何文本 - 这意味着您输入了 \n。你可以关闭stdin。但是简单地输入“nothing”(不键入任何键),您的 I/O 接口(键盘)通常简单地等待用户输入“something”。 -
如果你想例如超时读取等待,您将需要一些特定于操作系统的多路复用东西,例如在 Posix 和 Linux 系统上,poll(2)。在这种情况下,请编辑您的问题以说明您使用的是哪个操作系统