2013-10-07 42 views
0

我在C++上很生鏽。我想知道,最好的辦法是採用以下格式讀取輸入的內容:(!cin.peek()= - 1)閱讀每行兩個數字的行

400 200 
138 493 
... 

我目前使用的同時檢查EOF,然後內,我正在使用while(cin.peek()!='\ n')來檢查換行符。對於閱讀完整的文本行來說,這很好,但我怎樣才能將它限制爲2個數字和/或只抓住這2個數字?

+0

http://stackoverflow.com/questions/5005317/c-read-line-of-numbers – DhruvPathak

+0

'而(標準::函數getline(標準:: CIN,some_string )){parse(line); }'然後你可以通過例如創建一個'std :: stringstream()'並使用'operator >>'將數字提取到兩個'int'中來解析該行。 – 2013-10-07 06:12:23

+0

即使其他答案奏效,我也會試試這個,謝謝! – muttley91

回答

2
int num1,num2; 
while(cin>>num1>>num2) 
{ 
    //... 
} 

string line; 
int num1,num2; 
stringstream ss; 
while(getline(cin,line)) 
{ 
    ss<<line; 
    ss>>num1>>num2; 
    //... 
} 
+0

這個,謝謝。儘管如果我碰巧用3個數字來嘗試它,它會掛起等待第4個。但我認爲我正在使用的輸入無論如何都保證是2個數字。 – muttley91