首页 > 解决方案 > 调试模式和运行模式c ++的不同结果

问题描述

我在运行模式下测试我的程序,遇到了很多格式错误,所以我进入调试模式查看发生了什么,但令我惊讶的是,在调试模式下,一切正常。在“选择:”和没有空格的输入之间的运行模式下,Ii 甚至在任何输入之前打印错误消息等。

代码:

#include <iostream>
#include <string>

int main() {
    std::string value;
    std::cout << "Choose: ";
    while(std::getline(std::cin, value))
    {
        if (value == "1" || value == "2" || value == "3" || value == "4" || value == "5")
        {
            break;
        }
        else
        {
            std::cin.clear();
            std::cerr << "Error! Choose a valid number." << std::endl;
            std::cout << "Choose: ";
        }
    }
}

运行模式:

Choose:6
 Choose:Error! Choose a valid number.
6
Error! Choose a valid number.
 Choose:89
 Choose:Error! Choose a valid number.
6
 Choose:Error! Choose a valid number.

调试模式:

Choose: 6
Error! Choose a valid number.
Choose: 89
Error! Choose a valid number.
Choose: 
Error! Choose a valid number.

标签: c++

解决方案


推荐阅读