C++ IO类(3) 文件流
来源:互联网 发布:网络优化工程师待遇 编辑:程序博客网 时间:2024/06/15 05:56
我们可以通过文件流来控制文件的输入以及输出:
fstream: 创建一个未绑定的文件流
fstream fstrm("file.txt") 创建一个fstream,并打开名为s的文件 可以是字符串或指针, 可以设置打开的mode
文件流名.open("file.txt") 打开名未file.txt的文件,并将文件与fstrm绑定
文件流名.close(); 关闭指定文件
fstrm.is_open(); //bool 类型 观察文件是否打开
假设我们要读取一个文件中的内容,并将文件中的内容输出到另一个文件中
具体操作如下:
首先我们创建两个流,一个输入流和一个输出流:
ifstream input("myFileText.txt"); //创建一个输入流并绑定一个指定文件,输入流将从这个文件中读取数据 ofstream output("myResultFile.txt"); //创建一个输出流并绑定一个指定文件,流中的数据将输出到这个文件
将流与文件绑定后,我们就需要一个中介来接收读入的数据和输出数据
string total;
fstream fileStream; //fstream可以同时适用istream和ostream
istream& read(istream& is, string& item) {is >> item; return is;}
ostream& Print(ostream& os, const string& item) {os << item << endl;return os;}
然后逐行把字符串中的内容读取到文件中:
if (input.is_open()) { //判断是否成功打开while (read(input, total)) {cout << total << endl; //在控制台中输出结果Print(output, total); //将结果写入到未}}elsecout << "open error" << endl;
最后切记要把流给关闭:
//如果流要关联另外文件,必须先关闭当前文件input.close();output.close();
补充:文件可以设置追加模式,如追加写模式(ostream::app)设置在open的后面
//追加写入模式fstream myNewFile;myNewFile.open("myFileText.txt",ostream::app); //app每次写前都定位到文件末尾for (int i = 0; i < 100; ++i) {char word = 'a';myNewFile << word;}
整个程序如下:
#include<iostream>#include<fstream>#include<sstream>using namespace std;istream& read(istream& is, string& item);ostream& Print(ostream& os, const string& item);int main() {//fstream fstrm; //创建一个未绑定的文件流//fstream fstrm("file.txt"); //创建一个fstream,并打开名为s的文件 可以是字符串或指针 可以按mode的指定方式打开文件//fstrm.open("file.txt"); //打开名为s的文件,并将文件与fstrm绑定//fstrm.close(); //关闭指定文件//fstrm.is_open(); //bool类型 观察是否打开ifstream input("myFileText.txt"); //创建一个输入流并绑定一个指定文件,输入流将从这个文件中读取数据 ofstream output("myResultFile.txt"); //创建一个输出流并绑定一个指定文件,流中的数据将输出到这个文件string total;fstream fileStream; //fstream可以同时适用istream和ostreamfileStream.open("myFileText.txt"); //如果open成功,则open会设置流的状态,使得good()为trueif (input.is_open()) { //判断是否成功打开while (read(input, total)) {cout << total << endl; //在控制台中输出结果Print(output, total); //将结果写入到未}}elsecout << "open error" << endl; //如果流要关联另外文件,必须先关闭当前文件input.close();output.close();system("PAUSE");return 0;}istream& read(istream& is, string& item) {is >> item; return is;}ostream& Print(ostream& os, const string& item) {os << item << endl;return os;}
阅读全文
0 0
- C++IO文件流
- C#IO流文件操作
- C++IO类&文件输入输出
- C中的文件IO
- C文件IO
- C的文件IO
- c语言-文件io
- C/C++文件IO
- C语言 文件IO
- C笔记 文件IO
- C++ IO类(3) 文件流
- IO流类读取文件
- linux c编程 文件IO
- C/C++文件IO读写
- C++IO之文件操作
- c#IO文件读写操作
- C语言文件IO操作
- C语言之文件IO
- Tensorflow API 使用
- 决策树及提升算法
- 版本更新
- 车牌字符识别算法原理
- redis近期踩的坑总结
- C++ IO类(3) 文件流
- 微信验证
- GAN论文整理
- poj 2718
- Java序列化
- 天空盒
- 计算机视觉-Canny边缘检测
- 逆序反转单链表 Python 版
- vtk学习之路—第二章