为什么不呢?
cin.ignore (getchar(),'\n');
我不是一名专业的程序员,我几乎不认为自己是业余爱好者,但这是我的努力。
在彻底浏览网络上所有可能简单,便携且易于理解的解决方案之后(特别是像我这样的新手),我没有看到任何真正可以接受的东西(特别是像我这样的新手)。
在许多次尝试失败之后,我写了这一行。它奏效了!
对我而言,这听起来像是一个非常优雅的解决方案
我的意思是:它只是一行代码,它很容易记住,它不需要任何进一步声明的变量,你不必进入太多的抽象来理解它。
并且它在我尝试过的每种情况下都有效
如果这不是一个好的解决方案,那么有没有人愿意解释它呢?
[编辑]
感谢所有提升者的答案。但无论是我还是你都错过了这一点。 如果我发布的解决方案是否有效,我所质疑的不是,因为它有效! 至少在我的计算机上,以及我正在处理的所有可执行文件中(我不想看起来很顽固,试着自己拿走我的信用。我最后使用它的一个例子)。 而且你所谈论的副作用都没有出现。 该行回答了我的第一次输入,它只回答了一个输入 - 而不是“任何”字符。 我担心的是,我没有看到它在任何地方写过,并且认为自己是程序员中最穷的人,让我感到惊讶的是从头开始找到解决方案。
short WaitForEnter ()
{
cout << "Press ENTER to continue\n";
cin.ignore (getchar(),'\n');
return 0;
}
答案 0 :(得分:1)
让我们看一下ignore的定义:
istream& ignore (streamsize n = 1, int delim = EOF);
提取并丢弃字符 从输入序列中提取字符并将其丢弃,直到提取了n个字符,或者一个字符与delim相等。
如果到达文件结尾,该函数也会停止提取字符。如果过早地达到此目的(在提取n个字符或查找delim之前),该函数将设置eofbit标志。
因此,您的代码行将等待您输入一个字符到控制台(任何字符)不输入(\ n);