在下面的代码中,输入为9/ 8
,为什么B
为什么不将8
作为输入?
#include <iostream>
using namespace std;
int main(){
int A, B;
cin >> A >> B;
}
输入为9/8,为什么B不将8作为输入?
因为“ / 8”不是数字。
[operator>>
遇到与正在读取的数据类型不匹配的字符时,停止读取。
因此,在这种情况下,对operator>>
的首次调用正在读入int
,因此当遇到非数字/
字符时,它将停止读取。该字符留在输入流中。
operator>>
的第二次调用然后尝试读取/
字符而不是8
字符,并且由于/
不是数字而失败。
[您需要忽略/
才能读取8
,例如:
#include <iostream>
using namespace std;
int main(){
int A, B;
char ignore;
cin >> A >> ignore >> B;
}
或:
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int A, B;
cin >> A >> ws;
cin.ignore();
cin >> B;
}