C ++ CLI多线程:std :: cin文本被其他线程输出覆盖

时间:2015-01-22 15:32:53

标签: multithreading c++11 c++-cli cin

我实现了一个多线程C ++ 11控制台,我有以下循环获取命令:

while (_valid) {

    /* print newline with '>' */
    cout << "\r> ";

    if (cin.fail() || cin.eof()) {
        cin.clear(); /* reset cin state */
    }
    /* random parser function, not relevant */
    _parse_cmd(_input);

}

这有一个很大的问题:当我通过键盘输入一个新命令时,如果有一个线程在后台运行并且该线程打印任何内容,它将覆盖我当前的键盘输入并且它将消失,但我的输入将留在cin缓冲区。

如何重新打印当前的键盘输出?

0 个答案:

没有答案