C++按键:getch、cin.get?
我有一个循环运行的 Win32 程序。我希望能够在等待按键时暂停该程序。我使用“任意键”还是特定键并不重要,但我需要让程序冻结,直到我按下某个键。
我想知道我应该使用哪个命令。我正在使用 Visual C++,编译器无法识别以下任何命令:
cin.get()
std::cin.get()
getch()
我对 C++ 比较陌生。据我所知,在控制台应用程序中这是一个相当简单的操作(cin.get),但在 Win32 中可能会更困难。任何简单的解决方案或解决方法将不胜感激。该程序是定制用于单个科学实验的,所以现在如果解决方案有点糟糕(!),我不会大惊小怪(!)
如果我错过了问题中的任何重要信息,我深表歉意。
I have a Win32 program that runs on a loop. I would like to be able to pause that program while awaiting a keypress. It doesn't matter whether I use 'any key' or a specific key, but I need to have the program freeze until I press something.
I am wondering which command I should use. I am working with Visual C++ and the compiler doesn't recognise any of the following commands:
cin.get()
std::cin.get()
getch()
I am relatively new to C++. I understand that in a console app this is a fairly simple action to take (cin.get), but that it can be more difficult in Win32. Any simple solution or workaround would be appreciated. The program is bespoke to be used in a single scientific experiment, so for now I'm not fussed if the solution is a little botchy(!)
Apologies if I've missed any important info from my question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你不应该使用任何一个。
您应该使用
这里是文档
You should use neither.
You should use
Here's the documentation
示例:
_getch()
是 C++ 等价于 Cgetch()
Example:
_getch()
is C++ equivalent to Cgetch()
尝试
Try
假设您正在寻找 getch 的替代品(它不会回显到屏幕)。
如果您使用的是 Windows 和 Visual Studio,准确地说,请尝试使用 _getch。
这是它的链接
http://msdn.microsoft.com/en-我们/library/078sfkak(v=VS.100).aspx
Assuming that you are looking for an alternative for getch ( which does not echo to screen).
If you are using windows and visual studio to be precise try using _getch.
Here is a link to it
http://msdn.microsoft.com/en-us/library/078sfkak(v=VS.100).aspx
你应该
#include
并使用std::cin.get();
我认为
getch()
是一个C函数,但由于您使用的是 C++,那么cin
会更合适。You should
#include <iostream>
and usestd::cin.get();
I think the
getch()
is a C function, but since you are using C++, then thecin
would be more appropriate.假设这不是最好的方法,但它解决了我的问题。
将 VK_SPACE 替换为您喜欢的任何其他值。
而且它不便于携带。
Suppose it is not the best way but it solved my problem.
Replace VK_SPACE with any other value you like.
And it is not portable.