c++ - 为什么这不会在接受输入后循环退出

标签 c++ visual-c++ vector while-loop

非常简单。我不明白为什么它在不接受 y 字符后不会退出循环。

关于 y char 和 n char,我尝试了 == 和 != 的不同变体

vector<int> v;
    char ans;
    do
    {
        cout << "Enter scores, enter number outside of 0-100 to stop:\n";
        get_scores(v);
        print_stats(v);
        cout << "Do you want to try another set of scores? Y/N: \n";
        cin >> ans;
    } while (ans != ('n' || 'N'));

输入任何字符后,循环不断要求更多输入。 注意:获取分数和打印统计数据功能按预期工作。

最佳答案

你在 while 条件下的比较不正确,你可能是故意的

while (ans != 'n' && ans != 'N');

('n' || 'N') 将被强制为真 (1),因此您将检查值为 1 的字符而不是 'n'/'N'

关于c++ - 为什么这不会在接受输入后循环退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187070/

相关文章:

java - 了解 vector 同步策略

C++ builder 6 和 codegear 的 C++ builder 2009 兼容性

visual-c++ - 什么是 msvcr80!_NLG_Return?

c# - 只寻找现有变量

visual-c++ - 如何使用 Visual C++ 2008 添加工具提示来控制窗口应用程序 (win32 API)

visual-c++ - (VC++) 未初始化变量的运行时检查 : How is the test Implemented?

c++ - 如何在C++类中创建四个线程

java - NoElementException 但我打印元素并得到预期结果

c++ - 这段代码有什么作用? (C++,类和数组)

c++ - 将 ISO8601 字符串转换为自纪元以来的毫秒数