C ++中的函数被跳过?

时间:2013-12-31 14:08:17

标签: c++ function cin

我做了一个名为pause()的函数。这是代码:

void pause(){
    std::cin.sync();
    std::cin.ignore();
}

我还在我的代码前面使用了一个声明:

void pause();

int main(){

}

它起初工作,但现在由于某种原因它只是在我调用时跳过该功能......

std::cout << "Random text. Press any key to carry on...";
pause();

编辑:不幸的是,当我尝试不同的方式时,它会让我输入一些内容然后我必须按回车键。难道真的没有办法让它如果按下任何键(如丑陋的系统(“暂停”),它会立即继续吗?我将不得不为此创建一个新线程......

1 个答案:

答案 0 :(得分:1)

这就是为什么发布编译和运行并显示问题的最小完整代码非常重要的原因。但是,有可能在调用此函数之前已经完成了一些输入,并且它会在输入缓冲区中留下一些内容。因此pause没有被跳过,但由于输入中的噪音,它会立即返回。