所以我正在玩cin.get()来尝试更彻底地理解它。
char x[20];
cout << "Enter a name: ";
cin >> x;
cout << cin.get();
如果我输入“Bob Smith”,它输出32 - 空格的ASCII数 - 我预期它是输入流后的字符。
char x[20];
cout << "Enter a name: ";
cin >> x;
cout << cin.get() << " " << cin.get()
然而,这输出“83 32”,这让我感到困惑。为什么它会颠倒在空格之前输出“S”的顺序?
答案 0 :(得分:2)
如果您将cout << cin.get() << " " << cin.get()
更改为以下代码:
cout << cin.get();
cout << " " << cin.get();
打印32 83
,但不会反转。
这是因为如果你在一行中放入两个条件,C ++可能不会按顺序对它们进行评估。