C++ <istream> 和<ostream>
C++ <istream> and <ostream>
嗨,我目前正在从一本初学者的书中学习c++。在书中,作者对istream
和ostream
这两个头文件作了简要的解释。不幸的是,我不太明白他的意思。我试着在网上查了一下,但这对我理解他的解释没有帮助。
他说
istream
:包含用于从流中输入数据的提取器,并包括模板类basic_istream
。换句话说,istream
将I放入I/O。
ostream
:包含用于输出一系列字节的插入器,并包含模板basic_istream
。基本上CCD_ 8将O放入I/O。
我不明白的是,为什么你需要提取器来输入流中的数据,而ostream
则需要提取器。
作为程序输入的数据必须从提供数据的istream
中提取。
同样,作为程序输出的数据必须插入到ostream
中,以使其消失。
+------------------+ +-----------------------------------------+
| DATA SOURCE | ----input----> | [istream] --extractor--> YOUR PROGRAM |
+------------------+ +-----------------------------------------+
+------------------+ +-----------------------------------------+
| DATA SINK | <---output---- | [ostream] <--inserter--- YOUR PROGRAM |
+------------------+ +-----------------------------------------+
我不明白的是,为什么您需要提取器来输入流中的数据,而
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中提取的含义
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- EASTL矢量<向量<int>>连续的
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 是numeric_limits&lt; int&gt; :: is_modulo从逻辑上矛盾
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- 在修改列表后,std :: list&lt; t&gt; :: end()的值是否会更改
- ///<评论></评论>在Visual Studio中