一个好的,简单的,便携式的解决方案,用于等待输入C++
A good, simple, portable solution for waiting until enter is pressed in C++
为什么不是这个?
cin.ignore (getchar(),'n');
我不是一个专业的程序员,我几乎不能认为自己是一个业余爱好者,但这是我的一点努力。
在彻底查看了网络上所有简单、便携且易于理解的解决方案(尤其是对于像我这样的新手)之后,我还没有看到任何真正可以接受的东西(尤其是对于像我这样的新手)。
经过很多很多不成功的尝试,我写了这行。它奏效了!
对我来说,这听起来像是一个相当优雅的解决方案。
我的意思是:它只是一行代码,很容易记住,它不需要任何进一步声明的变量,你不必进入太多的抽象来理解它。
在我尝试过的每种情况下,它都有效。
如果这不是一个好的解决方案,是否有人愿意解释它?
[编辑]
谢谢大家的所有答案。但是无论是我还是你都没有抓住重点。我质疑的不是我发布的解决方案是否有效,因为它有效!至少在我的计算机上,以及在我正在处理的所有可执行文件中(我不想显得固执,请自己尝试从我身上夺走荣誉。我使用它的一个例子在最后)。而且您所说的副作用都没有出现。该行回答我的第一个输入,它只回答输入 - 而不是"任何"字符。我担心的是我没有在任何地方看到它写过,并且认为自己是最穷的程序员,这让我惊讶于从头开始找到解决方案。
short WaitForEnter ()
{
cout << "Press ENTER to continuen";
cin.ignore (getchar(),'n');
return 0;
}
让我们看看忽略的定义:
istream& ignore (streamsize n = 1, int delim = EOF);
提取和丢弃字符从输入序列中提取字符并丢弃它们,直到提取了 n 个字符,或者一个字符等于 delim。
如果到达文件末尾,该函数还会停止提取字符。如果过早达到此值(在提取 n 个字符或查找 delim 之前),该函数将设置 eofbit 标志。
因此,您的代码行将等待您在控制台(任何字符)中输入一个字符,而不是输入 ();
相关文章:
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 递归解决方案,用于显示线性链表数组
- 什么是最快的解决方案,用于读/写入哈希映射
- 大o用于以下递归解决方案
- 用于在 Visual Studio 中为整个项目或解决方案定义带有参数的预处理器宏的选项
- 稀疏带状 Ax=b 的批量 CUDA 解决方案,用于各种 b
- 从Visual Studio解决方案生成生成生成文件(用于GCC)
- 众所周知的解决方案,用于避免dynamic_cast的缓慢
- Visual Studio 2010 源代码管理集成不适用于解决方案文件夹之外的文件
- 一个好的,简单的,便携式的解决方案,用于等待输入C++
- 用于交替 for 循环的 C++ 通用解决方案
- GoogleMock SaveArg 用于保存数组?编译器抛出错误,我还没有看到一个好的解决方案
- 用于未使用参数参考的单线解决方案
- 用于编程练习(管件)的回溯解决方案
- 我的$Foo ATL解决方案中的($Foo)PS项目用于什么
- 拥有一个包含MFC项目和用于单元测试的控制台应用程序的解决方案
- 用于"types"点的强类型解决方案
- 用于链接 HTTP->SOCKS5 代理的简单单行解决方案
- 推荐用于在单线编辑控件中直观指示无效输入的解决方案
- 用于全局模式匹配的递归解决方案