【问题标题】:What does the "c" mean in cout, cin, cerr and clog?cout、cin、cerr 和 clog 中的“c”是什么意思?
【发布时间】:2011-01-16 18:16:31
【问题描述】:

coutcincerrclog 名称中的“c”是什么意思?

我会说char,但我没有找到任何可以确认的信息。

【问题讨论】:

  • @Rexxar 您可能需要重新考虑是否接受。这是一个很好的例子,说明为什么你永远不应该太快接受答案。我建议您在以后这样做之前等待几个小时,以便有时间发布更好的答案。
  • @Neil Butterworth 我已经改变了接受的答案。
  • “cout”和“out”有什么区别?
  • @WalterMitty 嗯,“cout”是 C++ 中的字符输出流。 “out”是英语中的一个词。

标签: c++ iostream standard-library


【解决方案1】:

“c”代表“字符”,因为 iostream 将值映射到字节 (char) 表示和从字节 (char) 表示。 [Bjarne Stroustrup's C++ Style and Technique FAQ]

【讨论】:

  • 如果它是正确的答案,它不是一个很有用的!所有 iostream 对象都是字符流。 cout 和 cin 只是在 stdout 和 stdin 流(通常是“控制台”)上实例化的此类对象,因此“控制台”作为标识符似乎更受欢迎和更有用。如果它们不存在 stdout 和 stdin 将是这些的明显名称。当然,标准库中很少有符号是良好命名的典范!
  • @clifford 有一个很好的观点。不幸的是,有 wcout(为什么 C/C++ 程序员不使用它?)它肯定代表“宽控制台”。为什么有人会在现代 LCD 屏幕上使用 80 列控制台窗口?
  • 另见 Stroustrup 的 Programming Principles and Practices Using C++ 的第 45 页:'cout 这个名字发音为“see-out”,是一个缩写“c字符输出输入流。”你会发现在编程中很常见的缩写。自然地,第一次看到缩写时可能会有点麻烦,并且必须记住它,但是一旦您开始反复使用缩写,它们就会成为第二天性,它们对于保持程序文本简短且易于管理至关重要。'
  • C++中有宽字符类型。没有宽控制台这样的概念。 wcout 绝对代表“宽字符输出”。
【解决方案2】:

我最初猜到了控制台this link 确认了。但是看到quote from Stroustrup之后,好像是个误解,c代表character

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

【讨论】:

  • 如果能从标准文档或 Stroustrup 的作品中获得参考,那就太好了 - 我找不到,而且随机网页不算在内,恐怕。
  • 我一直认为它在 C++ 中是指 C :) (没想太多...)
【解决方案3】:

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

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

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

1- 标头 声明关联的对象 具有标准 C 流的对象 由声明的函数提供 在 (27.8.2) 中。

[...]

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

istream cin

1- 对象 cin 控制来自与关联的流缓冲区的输入 对象标准输入,在 .

[...]

【讨论】:

    【解决方案4】:

    c 代表 C、C++ 和/或字符。

    【讨论】:

    • 您基本上回答说您不知道真正的原因。在这种情况下,请不要发布答案。你应该删除它。
    • 这个答案是错误的
    猜你喜欢
    • 2011-12-07
    • 2011-04-16
    • 2011-01-25
    • 2013-05-22
    • 2021-07-26
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多