为什么从 std::cin 读取输入后右括号字符的值有时不是")"?
Why is the value of closing bracket character sometimes not ')' after reading input from std::cin?
我正在浏览一些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 会自动完成右括号。显然,直到刚才我才注意到这一点,输入似乎是正确的,但显然没有实际的击键。
相关文章:
- 使用 cin.get() 初始化字符数组
- 编写 cin.get() 以接收字符数组时出现问题
- 为什么从 std::cin 读取输入后右括号字符的值有时不是")"?
- 使用 cin.get 读取字符数组
- 为什么当我从 cin 阅读时转义字符不起作用?
- 重用字符数组和 cin.getline
- Cin 和 getline 无法正确保存非 ascii 字符
- cin 对象如何根据用户需要将字符转换为不同类型的字符?
- 在C++中使用 std::cin 将字符传递给 int
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- CIN 双精度和不带空格的字符串会导致错误
- CIN 会丢失每行的前几个字符
- 使用 cin.get() 读取字符
- 如何将字符输入限制为仅获取一个字符串"cin"
- 如何使用 std::cin 将字符 ú 存储在字符数组中?
- 填充字符数组的最佳方法(获取与cin.getline)
- 确定 cin 中给出的字符数
- CIN是否将输入流中的无效字符取用
- 如何拒绝 cin 中的字符输入并定义最小和最大整数值
- 我可以做一个循环,直到“std::cin”在输入缓冲区中看到“”字符