array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 IOStream系统学习笔记 IOStream基本概念 - 爱码网

一 IOStream的基本概念
1 stream对象
stream就是一条数据流,是由某个类别定义出来的具有特定类型的对象,输出操作被定义为“数据流入stream”,输入操作被称为“数据流出stream”,另外有些标准的I/O通道(Channels)被定义为标准的全局对象,比如basic_istream<>的实例cin,basic_ostream<>的实例cout。

2 stream类别
stream主要分为用于输入的stream和用于输出的stream,比如istream和ostream。

3 全局性的stream对象
毕竟C++兼容着C语言,不是纯OO,存在全局函数及全局变量的概念,但这不一定是坏事(那些唯OO的技术洁癖可以当作没看到),比如下面这些标准I/O通道所用到的全局对象。
1) cin(隶属于istream):是供使用者输入用的标准输入通道,对应于C的stdin。操作系统通常将他和键盘连接。
2) cout(隶属于ostream):是供使用者输出用的标准输出通道,对应于C的stdout。操作系统通常把他与显示器相连接。
3) cerr(隶属于ostream):是所有错误信息输出使用的标准输出通道,相对于C的stderr。操作系统通常也是把它和显示器相连接,缺省情况没有缓冲,因为错误要及时通知给用户。
4) clog(隶属于ostream):是标准日志通道,缺省状况下操作系统把它连接于cerr所连接的装置,但是clog是有缓冲区的。避免大量的log输出造成频繁I/O。

如果操作系统支持标准I/O通道的重定向功能,则可以修改默认输出设备,比如将cin的默认输入设备改为一个文件,或一个由socket维护的stream。
4 让大家疑惑的移位运算符>> <<

初学C++的cin对象和cout对象时可能会对移位运算符<< >>产生疑问,其实移位运算符是在cin,cout所属类别中被执行了运算符重载,使其功能是像默认输出设备写数据和从默认输入设备读数据。

5 操控器 (manipulators)
经常用到std::endl我以前一直以为它不过是一个宏定义或常量,表示不同操作系统平台的\n,刚刚发现第二个功能,它还在里面调用了一下flush()函数,刷新了缓冲区,也就是说你每次输出一个endl的时候,就会把缓冲区数据输出到磁盘中。
刚刚又发现vs里面的代码提示中,endl是一个函数,但是我们实际调用的时候都是直接用endl而不是endl()来调用的,我初步判断它可能同时重载了()的类,虚伪的函数。。
其他操控器还有一些如:
endl: 输出\n并刷新缓冲区
ends:输出\0
flush:刷新output缓冲区
ws:读入并忽略空格

最后是一个小例子

IOStream系统学习笔记 IOStream基本概念// learnio.cpp : 定义控制台应用程序的入口点。
IOStream系统学习笔记 IOStream基本概念
//
IOStream系统学习笔记 IOStream基本概念

IOStream系统学习笔记 IOStream基本概念#include 
"stdafx.h"
IOStream系统学习笔记 IOStream基本概念
IOStream系统学习笔记 IOStream基本概念#include 
<iostream>
IOStream系统学习笔记 IOStream基本概念#include 
<fstream>
IOStream系统学习笔记 IOStream基本概念#include 
<string>
IOStream系统学习笔记 IOStream基本概念
IOStream系统学习笔记 IOStream基本概念
using namespace std;
IOStream系统学习笔记 IOStream基本概念
IOStream系统学习笔记 IOStream基本概念
int _tmain(int argc, _TCHAR* argv[])

相关文章: