C++ 如何在c++;

C++ 如何在c++;,c++,linux,C++,Linux,我有一个程序运行一个数值计算,随着时间的推移精度不断提高。它针对某些参数的不同值执行此操作。我需要的每个结果的精度取决于这些参数的值,在某种程度上我完全不知道 为了获得每个值的足够精度,我正在考虑一个程序/循环,如果用户点击键盘,该程序/循环将减少计算并转到参数的新值 示意图: //initialise parameters while( parameters_in_good_range){ while( no_key_pressed){ //do calculati

我有一个程序运行一个数值计算,随着时间的推移精度不断提高。它针对某些参数的不同值执行此操作。我需要的每个结果的精度取决于这些参数的值,在某种程度上我完全不知道

为了获得每个值的足够精度,我正在考虑一个程序/循环,如果用户点击键盘,该程序/循环将减少计算并转到参数的新值

示意图:

//initialise parameters
while( parameters_in_good_range){
     while( no_key_pressed){
         //do calculation
     }
     //update parameters
}

在Windows上,此程序将循环,直到按下键盘键:

#include <conio.h>

void main()
{
    while (1)
    {
        if (_kbhit())
        {
            break;
        }
    }
}
#包括
void main()
{
而(1)
{
如果(_kbhit())
{
打破
}
}
}

在linux上,看看这个。它告诉你如何使用NcRISS来做你想要的。< /P>你在哪个平台上?没有标准的C++来查询键盘,你需要依赖于OS特定的功能。@ MalkSunm不完全同意你的观点:因为C++ 11,你可以创建线程并对它进行一些控制,并有一些基本的同步机制。因此,您可以有一个线程进行计算,另一个线程读取标准输入。当第二个收到输入时,它可以告诉另一个它必须这样做quit@JohnZwinck: Linux@close-选民:很清楚这个问题在问什么。它在(!\u kbhit()){/*dostuff*/}时说
,而在(!\u kbhit()){/*dostuff*/}
时为什么不说
?这两种方式都不重要,因为OP是在Linux上的,而不是Windows链接到上面添加的Linux答案。@V.Semeria链接不够好,除非它实际包含相关信息,否则它不是答案。它包含一个解决问题的ncurses示例。