为什么C++代码在vs2022输出结果会不一致呀?

奇怪的C++结果不一致问题,代码如下

#include <iostream>
using namespace std;

int main() {
    char ch1;

    cout << "Please enter characters: ";
    ch1 = cin.get();
    cout << "Characters entered: " << ch1 << endl;
    cout << cin.get() << cin.get() << endl;
    return 0;
}

输入为 ABC 的情况下在大部分IDE的运行结果都是A
6667

但是在VS2022运行,输出的结果是A
6766
image.png
请大大帮忙看看为什么会有不一致的输出结果

在本地IDE和网页编译器都尝试过了,只有VS2022的结果是反着的

阅读 1.5k
2 个回答

参数的求值顺序是不确定的。
就是说那两个 get() 不一定哪一个会先被调用。

应该理解是字节顺序不同,而不是执行顺序不同。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题