char input [1024];
printf("Enter text. Press enter on blank line to exit.\n");
scanf("%[^\n]", input);
这将读取整行直到用户按下[Enter]键,防止用户输入第二行(如果他们想要的话)。
要退出,他们按下[Enter],然后再次按下[Enter]。因此,我尝试了各种while循环、for循环和if语句来控制scanf()函数与新行转义序列的交互,但似乎都没有起作用。
有什么想法吗?
scanf()
很难使用,特别是对于这种情况。相反,使用fgets()
会更简单。 - Greg Hewgillgets
提及为任何可行的选项。它太不安全了(并幸运地被从语言中移除)。 - Daniel Fischerscanf
的许多陷阱。实际上,最好完全避免使用它。http://www.c-faq.com/stdio/scanfprobs.html - jamesdlin