首页 > 解决方案 > C++ 检查整数是否为 int 类型

问题描述

我从我的代码中提取了一个片段,应该检查用户给出的输入是否是整数。如果是这样,代码应该通过,如果不是,程序应该在定义的点跳回/重新开始。

    again1: // Inloop point 1

    cout << "   " + player1 + ", where would you like to place a chip? Enter the index (1 - 9).\n" << endl;
    int index1; // Initializing index 1
    cin >> index1; // Writing input of player 1 into index 1

    if (cin.fail()) {
        cout << "Error" << endl;
        goto again1;
    }

因此,如果我之前尝试输入无效索引,我希望我的程序再次要求我输入索引。但是如果我输入例如“a”(这是无效的,因为它是一个字符),终端窗口只会在无限循环中运行我的消息“错误”数百次,并且不会再次跳回1。

PS:goto 原则本身是有效的。我已经在同一个文件中多次实现了它.cpp,并且效果很好。

有小费吗?

标签: c++terminaluser-inputtic-tac-toe

解决方案


推荐阅读