C ++ <istream>和<ostream> </ostream> </istream>

时间:2014-06-05 23:59:21

标签: c++

您好,我目前正在从初学者的书中学习c ++。在本书中,作者简要解释了头文件istreamostream。不幸的是,我不太明白他的意思。我试图在网上查找它们,但它无法帮助我理解他的解释。

他说

  

istream:包含用于从流输入数据的提取器,并包含模板类basic_istream。换句话说,istream将I放入I / O.

     

ostream:包含用于输出一系列字节的插入器,并包含模板basic_istream。基本上ostream将O放入I / O.

我不明白为什么你需要提取器来输入来自流的数据,反之亦然ostream

2 个答案:

答案 0 :(得分:3)

作为程序输入的数据必须从提供它的istream 提取

同样地,作为程序输出的数据必须插入ostream中才能消失。

+------------------+                  +-----------------------------------------+
| DATA SOURCE      |  ----input---->  | [istream] --extractor-->  YOUR PROGRAM  |
+------------------+                  +-----------------------------------------+

+------------------+                  +-----------------------------------------+
| DATA SINK        |  <---output----  | [ostream] <--inserter---  YOUR PROGRAM  |
+------------------+                  +-----------------------------------------+

答案 1 :(得分:0)

  

我不明白为什么你需要提取器来输入来自流的数据,反之亦然ostream

假设您有istream_obj作为输入数据流。现在你写:

int x;
istream_obj>>x;

此处istream将尝试从istream_obj中提取带有过载的int:

void operator >> (istream _stream, int x); // may not be exactly this but similar thing will be done.

这是从istream中提取的意思