c++中I/o库的学习
来源:互联网 发布:mac book air驱动下载 编辑:程序博客网 时间:2024/04/29 05:41
个人觉得i/o库挺难的,其中有很多要点要求掌握
1.io类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,sstream所定义的类型用于读写存储在内存中的string对象
2.标准库类型不允许做赋值和复制操作如:
(1)ofstream out1,out2;
out1=out2;//error是不支持赋值的
ofstream print(ofstream);
out2=print(out2);//error是不支持复制的
因为流对象有这样的特性,因此不能存储在vector类似的容器中
(2)形参和返回类型不能为流类型,真要只能传递和返回对象的指针或者引用:
oftream &print(ofstream&);//一般传递非const的引用,因为io对象的读写会改变它的状态,必须为非const的
while(print(out2));
3.io标准库管理一系列条件状态:badbit,failbit,eofbit,这些状态都是strm:iostate类型的,有很多函数可以测试和操作这些状态:s.eof(),s.fail(),s.bad(),s.good(),s.clear(),s.clear(flag),s.setstate(flag),s.rdstate()
4.输出缓冲区的管理,有三种刷新的方式
(1)用endl,flush,ends,endl刷新的同时在缓冲区中加入换行符,flush刷新不在缓冲区中加入任何的符号,ends不常用,在缓冲区中插入null符号
(2)unitbuf操作符将会刷新所有的输出如:
cout<<unitbuf<<"first"<<"second"<<nounitbuf;等价于
cout<<"first"<<flush<<"second"<<flush;
(3) 将输入和输出绑定在一起如:cin>>i;将导致cout关联的缓冲区被刷新
5 .文件的输入和输出只有一下几点
(1)对象关联文件时使用cstring而不是string此时需要使用c_str()函数将string转变成c_string
(2)当文件和新的文件相关联是必须先关闭现在的文件,然后再打开新的文件
(3)关闭流并不能改变流对象的内部状态,如果打算重用已存在的流对象就必须关闭和清空文件流,形式如下:
in.close();
in.clear();
(4)只使用out模式将会清空文件中的内容,但同时指定in和out不会清空
6.字符串流
字符串流有两个重要的应用其一形式如下:
string line,word;
while(getline(cin,line)){
istringstream stream(line);//将一个istringstream对象与所读取的行绑定起来
while(stream>>word){//普通的string操作就可以读出string
cout<<word<<endl;
}
}
其二如下:
stringstream提供转换和格式化:能够将算术类型装换成字符类型,相反也可以如:
int val1=12,val2=3;
ostringstream format_message;
format_message<<"val1:"<<val1<<"\n"<<"val2:"<<val2<<"\n";//这样就将int类型转化成string类型了
对应的操作如下:
istringstream input_istring(for_message.str());//返回其中的string值
string dump;
in_put>>dump>>val1>>dump>>val2;//其中的空白字符将会被忽略,从其中读取就会将string类型转换成int型
cout<<val1<<" "<<val2<<endl;
- c++中I/o库的学习
- SQLite学习(五) - 异步I/O的实现 sqlite3async.c
- 学习.net中I/O的心得--第一篇 初探I/O
- C语言中I/O流的一些疑惑
- linxu C 学习笔记(三):标准I/O库
- C标准I/O库
- overlapped I/O的学习
- i/o流的学习
- C语言学习大纲--I/O流
- java中I/O流学习笔记
- [C#]I/O完成端口的实现
- [C#]I/O完成端口的实现
- C的文件I/O函数
- C常用的I/O函数总结
- C的I/O函数备忘录
- C的I/O函数备忘录
- 《Windows Via C/C++》学习之同步设备I/O与异步设备I/O
- 《Windows via C/C++》学习笔记 (七) 设备I/O之“I/O请求完成”
- JQuery设置默认值
- 国内外最全面和主流的JS框架与WEB UI库(强烈推荐)
- 《再贵也能卖到翻》 博客思听 2009年3月
- tomcat 5 配置jndi
- 一个10年程序员职业发展、总结和困境
- c++中I/o库的学习
- Android 调试.so库文件
- 泛型中使用方法错误问题
- Java知识总结(1)——关于异常
- ocp
- android 用pull方法解析谷歌天气返回流
- HTTPS和HTTP的区别
- andriod navive debug信息的跟踪方法
- 链接的2种方式