我试图让用户在控制台中输入一段文本,该程序只有在连续两次按下回车键后才可以从标准输入中读取,或者换句话说,当在已经空白的行上按下回车键时。但是,我基本上希望如此继续从stdin读取,只有在已经空白的行上被按下enter时才从stdin读取。然后冲洗并重新启动。

用户输入的示例:

Hello(\n)
World(\n)
(\n)
(Read Now)


我还没有找到能够指定此行为的输入函数。

另外,我尝试了一些使用单字符检索功能的方法,但是我无法使其正常工作。

有人知道优雅地做到这一点的方法吗?

实施的答案:

char word[100];
int i = 0;
while ((word[i++] = getchar())!='\n' || (word[i++]=getchar())!='\n');
printf("%s",word);


显然,在使用它之前需要处理缓冲区溢出。只是一个例子。

最佳答案

基本上,您要忽略输入,直到序列\n\n。您可以执行以下操作:

while (getchar()!='\n' || getchar()!='\n');
//read the input now

07-24 09:46
查看更多