【发布时间】:2021-10-29 03:09:59
【问题描述】:
当用户按两次输入时,我想打破这个循环。意思是,如果用户第二次没有输入字符,而只是再次按回车,则循环必须中断。
char ch;
while(1) {
scanf("%c",&ch);
if(ch=='') { // I don't know what needs to be in this condition
break;
}
}
【问题讨论】:
-
使用
fgets阅读整行。如果fgets返回非空指针,检查字符串长度是否为空。这表示一个空行。 -
另外,请花一些时间阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。最后,如果你想问一个 C 问题,那么请不要添加其他无关的语言标签。
-
@Some 但是让我补充一下,这个问题在第一次提问的前 5% 中!它有一些代码(好的,不能按原样编译,但仍然)以及对意图和问题的合理描述。赞成:-)。
-
值得一提的是,
scanf的%c转换的特殊之处在于它不会忽略换行符而是简单地扫描它,就像输入流中的任何其他字节一样。大多数其他转换,如 %d、%f、%s 解析“单词”并且不关心分隔它们的空格,可能包括换行符。像这样的问题是交互式练习程序的典型问题,但对于现实世界的问题却不典型:您最后一次与在线模式下的控制台程序交互是什么时候?