2017-07-02 93 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