我正在尝试这样的事情。它从5-1开始计算秒数。
#include<iostream>
#include<stdlib.h>
#include<windows.h>
#include<iomanip>
using namespace std;
int main()
{
for(int i=5;i>0;i--)
{
cout<<"\n\n\n\n\n\n";
cout<<setw(35);
cout<<i;
Sleep(1000);
system("CLS");
}
system("PAUSE");
}
我试图找出一种方法来使用用户输入(来自键盘)打破循环,以便在其运行时打破它。我不知道怎么做。我听说过多线程。我甚至不知道多线程是否在我的情况下有任何应用。那么在执行循环时如何在中间打破它的任何想法?
答案 0 :(得分:1)
我认为你需要一个线程才能做到。
在主循环中添加一个全局变量, 使用线程接收命令行输入并修改全局变量。
声明一个全局变量
bool stop = false;
创建一个线程来读取标准输入并修改&#39;停止&#39;
DWORD WINAPI thread1(LPVOID pm)
{
//check the getchar value
int a = getchar();
while (a != '0'){
a = getchar();
}
stop = true;
return 0;
}
在你的主要:
HANDLE handle = CreateThread(NULL, 0, thread1, NULL, 0, NULL);
for(int i=5;i>0 && !stop;i--)
{
cout<<"\n\n\n\n\n\n";
cout<<setw(35);
cout<<i;
Sleep(1000);
system("CLS");
}
答案 1 :(得分:0)
试试这个:
#include<iostream>
using namespace std;
int main()
{
int i = 1;
while(i)
{
// do your work here
cin>>i;
}
cout<<"Terminated"<<endl;
}
继续扫描int i,当你想要断开循环时给出0作为输入值,你的循环将终止。