我正在尝试使用C ++惯用法将字符写入cout
,但我找不到任何C ++标准库中的字符格式化程序。
答案 0 :(得分:2)
没有格式化程序,operator<<
有不同的重载。
char c = 'a';
cout << c;
int i = 42;
cout << i;
答案 1 :(得分:2)
字符自动格式化为%c。要将整数打印为char(如果您真的想要),可以将其转换为:
int x = 42;
std::cout << (char) x;
阅读的工作方式类似(它的行为类似于cout
,而不是scanf
)。无需格式化:
char c;
std::cin >> c;
这是一个回音示例:
char c;
while(std::cin >> std::noskipws >> c) {
std::cout << c;
}
cin
的一个警告是它是有状态的。如果您已在代码中使用cin
,则可能需要使用std::cin.clear()
重置错误状态位
答案 2 :(得分:1)
如果你只是将一个char传递给一个outstream,它将打印为char:
char a = 'a';
std::cout << a;
- &GT;
一
如果您要将int
输出为char
,可以投射它:
int i = 'i';
std::cout << static_cast<char>(i);
- &GT;
我
答案 3 :(得分:0)
找不到任何格式化程序,但这有效:
int c = 'x';
cout.put(c);