B不接受8作为输入吗? c ++

问题描述 投票:0回答:2

在下面的代码中,输入为9/ 8,为什么B为什么不将8作为输入?

#include <iostream>
using namespace std;

int main(){
    int A, B;
    cin >> A >> B;
}
c++ input output
2个回答
2
投票

输入为9/8,为什么B不将8作为输入?

因为“ / 8”不是数字。


0
投票

[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;
}
© www.soinside.com 2019 - 2024. All rights reserved.