char Oprt;
cout << "\nPlease enter first number: ";
cin >> num1;
cout << "Please enter second number: ";
cin >> num2;
cout << "Now please enter operator: ";
cin >> Oprt;
while (Oprt != '+' && Oprt != '-' && Oprt != '*' && Oprt != '/')
{
cout << "Wrong Operator please enter again: ";
cin >> Oprt;
}
当用户输入诸如“ffsd”之类的内容作为输入时,循环循环的次数与用户所写字符的次数相同,但是我想要的是我的程序仅读取第一个符号,而忽略其余符号。
最佳答案
您在这里有两种有效的方法:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n')
可以忽略所有字符,包括'\n'
或istream::getline
读取整个std::string
,然后在字符串不为空的情况下获取初始字符。 在这两种情况下,您都需要在进入循环之前忽略
'\n'
,因为cin >> num2
不会从输入流中删除'\n'
。