2017-07-02 65 views
1

在GNOME终端和Ubuntu中的XTerm中,我遇到了这个问题: 我强制输入所有cin语句的值,而不管它们在源代码中的位置,以及只在最后执行所有cout语句。例如:在C++程序运行期间从终端获取输入

int main() 
{ 
    int a; 
    cout<<"Enter a :"; 
    cin>>a; 
    cout<<"\n"; 
    return 0; 
} 

当我运行这段代码(使用G ++),我不得不到输入a前第一cout语句运行。

[email protected]:~/Hackerearth$ g++ -Wall -o sample sample.cpp [email protected]:~/Hackerearth$ ./sample 5 Enter a :

image

“5”是我强迫任何cout语句运行之前提供的声明cin>>a输入。

+0

*“我必须在第一个cout语句运行之前输入a的值......” - 这听起来很正确。问题是什么? – jww

+0

你允许更改代码吗? –

+0

@jww问题是我想让cout语句先运行,然后输入一个值。 – Kanishk

回答

0

使用std::flush解决了这个问题。

int main() 
{ 
    int a; 
    cout<<"Enter a :"<<flush; 
    cin>>a; 
    cout<<"\n"; 
    return 0; 
} 



[email protected]:~/Hackerearth$ g++ -Wall -o sample sample.cpp 
[email protected]:~/Hackerearth$ ./sample 
Enter a :5