字符验证c ++

时间:2015-12-07 17:44:52

标签: c++

尝试使功能正常工作但是我仍然是编码的初学者 - 这个功能正在清除我的所有输入有效但是,据我所知,它应该是失败的吗?

char input;
bool valid;

do
{
    valid = false;
    gotoXY(col, row);
    cin >> input;

    if (cin.fail())
    {
        message("Invalid input! Please re-enter.", 5, offset);
        cin.clear();
        clearLine(col, row);
        clearLine(0, row + 2);
    }
    else
    {
        valid = true;

    }

    cin.ignore(150, '\n');

    clearLine2(5, offset);
    clearLine2(5, offset + 2);

} while (!valid);

cin.setf(ios::skipws);

return input;

我根本无法为此找到解决方案,这真的会引起一些麻烦,任何帮助都会受到赞赏!

2 个答案:

答案 0 :(得分:0)

我认为如果您输入“1或字符串”

,您希望cin失败

但cin的失败案例可能是输入的值不适合变量。

参考 http://www.cplusplus.com/forum/beginner/2957/ Meaning of cin.fail() in C++?

答案 1 :(得分:0)

据我所见,你的代码说: 如果您的输入失败(没有任何内容输入),则发送消息。 否则接受一切。 对我来说,看起来你必须交换它们。