C++ 我的cin.fail()检查有时有效,但有时会出错
我试图包含几行代码来检查cin输入的错误状态,它有时工作,有时给我一个错误。下面是一个运行良好的示例:C++ 我的cin.fail()检查有时有效,但有时会出错,c++,cin,C++,Cin,我试图包含几行代码来检查cin输入的错误状态,它有时工作,有时给我一个错误。下面是一个运行良好的示例: int main() { //Introduces the game int intro = 0; int pronouns = 0; int confirm_pronouns = 0; while (intro != 1 || intro != 2) { do { std::cout << "The Eden Shard\n"; s
int main() {
//Introduces the game
int intro = 0;
int pronouns = 0;
int confirm_pronouns = 0;
while (intro != 1 || intro != 2) {
do {
std::cout << "The Eden Shard\n";
std::cout << "Press 1 to begin. Press 2 to exit.\n\n";
std::cin >> intro;
if (cin.fail()) {
cin.clear();
cin.ignore();
std::cout << "\n\nInvalid input\n\n";
}
}
while (cin.fail() == true);
intmain(){
//介绍游戏
int intro=0;
int代词=0;
int-confirm_代词=0;
while(intro!=1 | | intro!=2){
做{
std::cout-intro;
if(cin.fail()){
cin.clear();
cin.ignore();
std::cout名称;
做{
std::cout可能是因为在多次使用cin
之前缺少std:
的问题。如果在代码中的某个地方没有包含使用名称空间std
或不太通用的使用名称空间std::cin
,则cin
必须始终带有前缀std:
std::string assign_name() {
std::string name;
int confirm_name = 0;
do {
std::cout << "\nWhat is your name?\n\n";
std::cin >> name;
do {
std::cout << "\n\nYour name is " << name << "?\n";
std::cout << "1. Yes\n";
std::cout << "2. No\n\n";
std::cin >> confirm_name;
if (cin.fail() == true){
cin.clear();
cin.ignore();
std::cout << "\n\nInvalid input\n\n";
}
if (confirm_name != 1 && confirm_name != 2) {
std::cout << "\nInvalid entry\n";
}
}
while (confirm_name != 1 && confirm_name != 2);
}
while (confirm_name != 1);
return name;