我希望從輸入數量未知的控制檯進行輸入。我所知道的是他們小於或等於10.如果輸入數量未知,則進行輸入
我寫了這段代碼,但它計算了兩次最後的值。
int x;
do{
cin>>x;
cout<<check(x)<<"\n";
}while(std::cin);
的輸入是這種形式:
12
2
45
我希望從輸入數量未知的控制檯進行輸入。我所知道的是他們小於或等於10.如果輸入數量未知,則進行輸入
我寫了這段代碼,但它計算了兩次最後的值。
int x;
do{
cin>>x;
cout<<check(x)<<"\n";
}while(std::cin);
的輸入是這種形式:
12
2
45
由於@LightnessRacesinOrbit評論說,這是while(!eof)
bug again。你應該從之後檢查流狀態,而不是之前。
可以在while
-condition使用cin>>x
和應用的特殊值(即任何非數字)作爲這樣結束標誌:
while (cin >> x)
{
// got a value
}
您可以使用的IStream :: geline。
char input[1024]
std::cin.getline (input,1024);
閱讀該行後,必須將其用空格分隔。只是忽略第十一個分裂。並且你可以在分割(some_split.c_str())上應用atoi或類似的函數來獲取數值
請注意,OP的示例有多行。 –
這個方案需要一個標記值,因爲'cin'會在最後一個值等待用戶輸入後掛起一些東西。 –
謝謝。愚蠢的錯誤。 – user3250183
@MatthieuM。更新。謝謝。 – herohuyongtao