C++实战操练----标准IO库(2012-12-25)
来源:互联网 发布:中文文本词性标注算法 编辑:程序博客网 时间:2024/05/19 14:19
1、os<<"Goodbye!"<<endl;
如果os是一个ofstream对象,则os<<"Goodbye!"<<endl;将字符串“Goodbye!”及换行符写到os所关联的磁盘文件中;
如果os是一个ofstringstream对象,则os<<"Goodbye!"<<endl;将字符串“Goodbye!”及换行符写到os所关联的字符串流中
2、流类型不能作为函数的形参或返回类型,必须使用流类型的指针或引用;
3、编写一个函数,其唯一的形参和返回值都是istream&类型。该函数应一直读取流直到到达文件结束符为止,还应将读到的内容输出到标准输出中。最后重设流使其有效,并返回该流。并通过cin为实参实现调用来测试该函数;
#include <iostream>using namespace std;//编写get函数istream& get(istream& in){ int ival; while(in>>ival,!in.eof()){//遇到文件结束符钱一直读入数据 if(in.bad())//出现系统级故障 cout<<"IO stream corrupted"; if(in.fail()){//出现可恢复错误 cerr<<"bad data,try again";//提示用户 in.clear();//恢复流 in.ignore(200,' ');//跳过类型非法的输入项 continue; //继续输入数据 } //读入正常 cout<<ival<<" ";} in.clear(); return in;}int main(){ double dval; get(cin); cin>>dval;//重新使用恢复行的流 cout<<dval<<endl; return 0;}
4、while(cin>>i){}导致循环终止的原因是流对象cin进入错误状态,具体包括:在读入数据是出现以下情况:
系统级故障;读入了无效数据;遇到文件结束符
5、由于ifstream继承了istream,因此可将istream对象传递给形参为istream引用的函数;编写函数读取已命名文件;
#include <iostream>#include <fstream>#include <string>using namespace std;//编写get函数istream& get(istream& in){ int ival; while(in>>ival,!in.eof()){//遇到文件结束符钱一直读入数据 if(in.bad())//出现系统级故障 cout<<"IO stream corrupted"; if(in.fail()){//出现可恢复错误 cerr<<"bad data,try again";//提示用户 in.clear();//恢复流 in.ignore(200,' ');//跳过类型非法的输入项 continue; //继续输入数据 } //读入正常 cout<<ival<<" ";} in.clear(); return in;}int main(){ string fileName; //读入文件名 cout<<"Enter file name:"<<endl; cin>>fileName; //创建ifstream对象并绑定到名为filename的文件 ifstream inFile(fileName.c_str()); if(!inFile){ //打开指定的文件失败 cerr<<"error:can not open input file:"<<fileName<<endl; return -1; } get(inFile);//以inFile为实参调用函数get return 0;
- C++实战操练----标准IO库(2012-12-25)
- c++实战操练----函数篇(2012-12-24)
- 【C++】标准IO库
- Java.IO操练
- C++primer 标准IO库
- C++Primer 标准IO库
- C++_Primer_chapter8 标准IO库
- c标准IO库使用
- C++:标准IO(输入输出)
- c++primer学习笔记 ( 第八章 标准IO库)
- C++Primer学习笔记(8)标准IO库
- C 标准库IO缓冲区 内核缓冲区(一)
- C 标准库IO缓冲区 内核缓冲区(二)
- 读书笔记(C++)——【标准IO库】
- Git(二)-Git实战操练
- 《C++primer》 函数 标准IO库
- IO之标准C库buffer
- c++Primer,八,标准IO库
- iSCSI CHAP认证不完全攻略
- zoj 3348 网络流 汇总
- iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)
- 分享一个两年前写的JMS&ActiveMQ入门的ppt
- JSON
- C++实战操练----标准IO库(2012-12-25)
- live555源码简介
- Java 线程基本知识
- Oracle 网络服务管理:主机登录用户名口令错误
- 使用ContentResolver操作ContentProvider中的数据
- 常用 压缩命令-vi-SHELL命令-正规表示法
- ExpandableListView 添加其他控件
- JQuery EasyUI
- 我们需要好的流程落地方案,这比流程工具更加重要!