c++ - 使用 cin 安全地提示是/否

标签 c++ user-input

我正在学习 C++ 类(class),我想知道是否有更好的方法来检查输入是否为所需类型。

这样做的好方法吗?我有 PHP/PERL 背景,这让我很担心使用 while 循环。

char type;
while (true) {
    cout << "Were you admitted? [y/n]" << endl;
    cin >> type;

    if ((type == 'y') || (type == 'n')) {
        break;
    }
}

这是一种安全的方式吗?还是我怀疑我是在向一个受伤的世界敞开心扉?有什么更好的方法可以确保我在继续之前获得所需的输入?

最佳答案

就我个人而言,我会选择:

do
{
    cout << "Were you admitted? [y/n]" << endl;
    cin >> type;
}
while( !cin.fail() && type!='y' && type!='n' );

关于c++ - 使用 cin 安全地提示是/否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209135/

相关文章:

使用 multimap 时,C++ map/set 迭代器不可递增错误

javascript - 如何添加一个用户输入区域,就像 Wordpress 新的帖子区域一样?

java - 如何检查字符串是否不等于 java 中的对象或其他字符串值?

c++ - fatal error LNK1120 : 1 unresolved externals

C++ 将数据从浮点 vector 复制到浮点对 vector

c++ - 在 C++11 中,我可以为非聚合类型实现类似构造函数的聚合类型初始化吗?如何实现?

c++ - 在多线程程序中创建 OpenGL 结构?

c# - 按下 ALT+KEY 时处理 KeyDown 事件

java - 检查数组中的负数并重新提示输入正确

php - 函数或调用者应该负责输入验证吗?