#include <iostream>
using namespace std;
int a, b, c, d;
void main()
{
cout << "Reading a" << endl;
cin.ignore();
// cin.clear();
cin >> a;
cout << "Reading b" << endl;
cin.ignore();
// cin.clear();
cin >> b;
cout << "Reading c" << endl;
cin.ignore();
// cin.clear();
cin >> c;
cout << a << " " << b << " " << c << endl;
system("pause");
}
我讀了3次變量從a到c。當我輸入隨機數然後接受它使用沒有空白(23
,45
,66
)時它工作。但是,當我的輸入看起來像這樣23 45 66
(中間的空格)時,它立即將23
設置爲a
,45
至b
和66
至c
。正確的方法來刷新cin輸入
我的意圖是讀取數字,以空格結束,然後忘記輸入的其餘部分並再次讀入下一個變量。
cin.ignore()
和cin.clear()
似乎沒有幫助我,但可能我使用他們錯了。
我可以製作自己的緩衝區,然後檢查它是否有空白區域,但在做之前我想看看是否有其他方法。
閱讀與函數getline一整行,然後執行字符串使用Stoi旅館 – mikedu95
偉大工程,以整數的轉換並且實施起來非常快。謝謝。 –