50

cout,cin和名称中cerr的“c”是什么意思?clog

我会说char,但我还没有找到任何可以证实的东西。

4

3 回答 3

82

“c”代表“字符”,因为 iostreams 将值映射到字节 (char) 表示和从字节 (char) 表示。[ Bjarne Stroustrup 的 C++ 风格和技术常见问题解答]

于 2010-02-14T18:42:50.060 回答
26

我最初猜到了console这个链接证实了这一点。但是在看到Stroustrup 的引用之后,似乎这是一个误解,并且 c 代表character

支持该理论的可以作为指标的一件事是,对于每个流对象(cincoutcerr等),都有一个等效的流对象(wcinwcoutwcerr等)。

于 2010-02-14T18:30:20.187 回答
2

编辑:FredOverflow 通过指向 Stroustrup 网站的链接找到了正确答案。

C++ 标准草案(www.open-std.org 上的 n1905.pdf,我没有确切的链接)似乎表明它来自“C”:“C 标准输出”=> cout

27.3 标准 iostream 对象 [lib.iostream.objects]

1- 标头 <iostream> 声明将对象与 <cstdio> (27.8.2) 中声明的函数提供的标准 C 流相关联的对象。

[...]

27.3.1 窄流对象 [lib.narrow.stream.objects]

istream cin

1-对象 cin 控制来自与对象 stdin 关联的流缓冲区的输入,在 <cstdio> 中声明。

[...]

于 2010-02-14T19:01:16.147 回答