c++ - 为什么这个 C++ 程序打印 "2"?

标签 c++ cin

我是 C++ 的新手,但这是我的代码:

#include <iostream>
using namespace std;

int main() {
    int x;
    cin >> x;
    cout << "x = " << x << endl;
    system("pause");
    return 0;
}

每当我输入字母时,它总是打印x = 2。我知道我应该输入数字,但为什么是“2”?

最佳答案

因为你有未定义的行为。您应该永远不要在没有先检查输入是否成功的情况下使用任何输入值。在输入失败时访问输入值(如果您为 int 输入 alpha,它会这样做)将使该值保持其先前的状态——如果您从未以其他方式初始化它,则未初始化(并且访问未初始化的值是未定义的行为)。

关于c++ - 为什么这个 C++ 程序打印 "2"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605427/

相关文章:

c++ - 在 CUDA 中初始化 dim3 变量, "dim3 dimGrid(numBlocks);"语法如何工作?

c++ - 哪个编译器最适合刚开始学习 C++ 的人?

c++ - 为什么一元减去进行整数提升?

c++ - c++ 中的 .erase() 问题

c++ - 一个字符串的 Cout 给出了一个错误并且很难有一些洞察力帮助吗?

c++ - 将输入读入 vector 对象

C++ - 如何将对象推送到 std::shared_ptr 的 std::stack ?

用于用户输入的 C++ 字符串验证

c++ - 出界字符数组的错误检查 - 使用 std::cin

c++ - cin.get 和 char 错误信息