我有一个多线程控制台应用程序使用std :: cin和std :: cout进行控制台IO . 问题是,有时我需要杀死特定的线程,因为它挂在cin上,而该线程不需要输入 - 直到cin上的函数调用在循环中运行 . 当主线程杀死工作线程时,它通过cin请求输入但是然后cin以某种方式被破坏并且不能再被适当地使用 . 我为工作线程创建了单独的输入对象,认为我将解决这个问题,但它不起作用,因为默认情况下控制台输入没有与它连接 .
#include <iostream>
#include <conio.h>
using namespace std ;
class NewInput: public istream
{
public:
NewInput()
{}
} ;
int main()
{
NewInput X ;
string var ;
X >> var ;
getch() ;
return 0 ;
}
如果有办法断开连接控制台输入直接与cin连接,我将不需要创建新的输入流对象 . 上面的代码表明默认情况下没有连接新的对象控制台输入 .