2011-10-25 77 views
1

Possible Duplicate:
Need help with getline()
getline not asking for input?的std ::函數getline輸入不是在C++

我在下面的代碼工作正常:

int main() 
{ 
    int num; 
    string str; 
    cin>>num; 
    int points[num][2]; 
    for(int i=0;i<num;i++) 
    { 
     cout<<"\nPoint"<<i<<":"; 
     getline (cin,str); 
     points[i][0]=atoi(&str[0]); 
     points[i][1]=atoi(&str[2]); 
    } 

    for(int i=0;i<num;i++) 
    { 
     cout<<"\npoint"<<i<<" = "<<points[i][0]<<" "<<points[i][1]; 
    } 

與我正在上面代碼的問題是,當我進入num值一些整數,然後按回車鍵,而不是印刷...

「0點:」

...,等待我進入它打印「0點」與「點1:」,然後花費點輸入1

對於點0它會自動輸入爲0和0

+2

'cin'離開流中的換行符。 –

+1

「不正確」你的意思是像輸入而不是輸入? ( - ; –

+1

錯誤:ISO C++禁止使用可變大小的數組'''':你想發佈你的真實代碼嗎? – Johnsyweb

回答

0

從王子約翰·衛斯理的答覆繼,嘗試

cin >> num >> endl; 

刷新流緩衝區後再次使用它。

+0

你試試這個發生了什麼事 – Johnsyweb

+0

感謝,這工作 – Antrromet

+0

@Antrromet:真的該編譯器 – Johnsyweb

1

你的程序有沒有消費的新行後:

cin >> num; 

的傳統方法這樣做是這樣的:

std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n'); 

numeric_limits<limits>定義。