我正在浏览一些C++教程,我已经遇到了可能是一个微不足道的问题,但现在却让我感到困惑。当我使用 Xcode 11.3 在C++中输出右括号字符的值时,它有时会输出为 unicode 字符。
#include <iostream>
int main() {
int x;
char ch1, ch2;
std::cin >> ch1 >> x >> ch2;
if (!std::cin || ch1 != '(' || ch2 != ')') {
std::cout << "FAIL:n";
std::cout << "ch1 = " << ch1 << "n";
std::cout << "x = " << x << "n";
std::cout << "ch2 = " << ch2 << "n";
return 1;
} else {
std::cout << "SUCCESS:n";
return 0;
}
}
在 Xcode 中,输入(2)
- 输入为四个击键 "(", "2", "(" 和 ENTER - 给出输出:
FAIL:
ch1 = (
x = 2
ch2 = 357
但是,如果右括号用作流中的第一个字符,则它会按预期输出为字符)
。
我猜这与事物的转义方式有关,或者可能是我如何使用输入流的一些逻辑错误。请谁能让我知道我做错了什么?
当我在输入流中键入时,Xcode 会自动完成右括号。显然,直到刚才我才注意到这一点,输入似乎是正确的,但显然没有实际的击键。