iostream等效格式化程序到cstdio“%c”?

时间:2014-02-14 18:59:44

标签: c++ format iostream

我正在尝试使用C ++惯用法将字符写入cout,但我找不到任何C ++标准库中的字符格式化程序。

4 个答案:

答案 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);