什么是cin的数据类型

时间:2017-11-18 11:59:53

标签: c++ cin

我想知道究竟是什么。我的意思是功能或类......

我确信它不是一个函数,因为我们使用cin的方式与调用函数的方式非常不同。

留下类,对象或其他类似的选项。

究竟是什么?

2 个答案:

答案 0 :(得分:5)

C ++标准§27.4.1 [iostream.objects.overview]

#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>

namespace std {
  extern istream cin;
  extern ostream cout;
  extern ostream cerr;
  extern ostream clog;
  extern wistream wcin;
  extern wostream wcout;
  extern wostream wcerr;
  extern wostream wclog;
}
     

p1标头声明与对象关联的对象   由声明的函数提供的标准C流    (27.9.2),并包括使用这些标题所需的所有标题   对象。

您还可以查看gcc的implementation on github

namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION

  // Standard stream objects.
  // NB: Iff <iostream> is included, these definitions become wonky.
  typedef char fake_istream[sizeof(istream)]
  __attribute__ ((aligned(__alignof__(istream))));
  typedef char fake_ostream[sizeof(ostream)]
  __attribute__ ((aligned(__alignof__(ostream))));
  fake_istream cin;
  fake_ostream cout;
  fake_ostream cerr;
  fake_ostream clog;

#ifdef _GLIBCXX_USE_WCHAR_T
  typedef char fake_wistream[sizeof(wistream)]
  __attribute__ ((aligned(__alignof__(wistream))));
  typedef char fake_wostream[sizeof(wostream)]
  __attribute__ ((aligned(__alignof__(wostream))));
  fake_wistream wcin;
  fake_wostream wcout;
  fake_wostream wcerr;
  fake_wostream wclog;
#endif

_GLIBCXX_END_NAMESPACE_VERSION
} // namespace

答案 1 :(得分:3)

cinistream类的 对象