IOstream等效格式化程序与CSTDIO "%c"?

iostream equivalent formatter to cstdio "%c"?

本文关键字:CSTDIO 程序 格式化 IOstream      更新时间:2023-10-16

我正在尝试使用C++习语来编写要cout的字符,但我在任何C++标准库中都找不到字符格式化程序。

字符会自动格式化为 %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()

char c = 'a'; cout << c; int i = 42; cout << i;

如果您只是将字符传递给外流,它将打印为字符:

char a = 'a';
std::cout << a;

->

一个

如果要将int输出为char,可以将其转换为:

int i = 'i';
std::cout << static_cast<char>(i);

->

找不到任何格式化程序,但这有效:

int c = 'x';
cout.put(c);