【发布时间】:2011-08-10 15:03:52
【问题描述】:
我正在编写一个 Win32 GUI 应用程序,它有一个循环,我只想在按下按键时重新启动。主循环已经在运行,我不能简单地重新启动它,所以我必须插入一个用户可以手动中断的“挂起”点。下面的代码代表了我在主循环末尾放置的内容。它应该通过将程序放入一个无限的子循环来暂停程序,该子循环只能在按下字母“q”时被打破。
for (;;)
{
char temp;
temp = _getch();
if (temp == 'q')
{
break;
}
}
这成功地使程序挂起,但按 'q' 不会结束循环。我知道使用 cin.ignore() 或 cin.get() 会更好,但由于某种原因,当我将 iostream 添加到标题列表时,我得到了一堆错误,所以我目前正在尝试使用 _getch( ) 带有 conio.h 标头。
非常感谢任何帮助。
【问题讨论】:
-
if(temp == 'q')将使您的代码更具可读性。 -
只是好奇,但是您从标题中得到了什么错误?
-
你确定你的程序到达了这个循环吗?你验证了吗?
-
执行无限循环并不是“暂停”程序的正确策略,除非您想测试风扇的速度。
-
@MGZero,这些是我在添加 iostream:1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19) 时遇到的几个错误:错误 C2061:语法错误:标识符 'acosf' 1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19):错误 C2059:语法错误:';'