您的位置:首页 > 编程语言 > C语言/C++

C++ 读写操作同一个文件的几种方法

2011-08-23 23:23 615 查看

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
// 打开文件 "test.txt" 同时读写操作
filebuf buffer; // 建立一个 file stream 缓冲区,并将它装在两个stream对象上
ostream output(&buffer);
istream input(&buffer);
buffer.open("test.txt", ios::in | ios::out | ios::trunc);

for (int i = 1; i <=4 ; i++) {
// 写一行数据
output << i << ". line" <<endl;

// 打印全部的文件内容
input.seekg(0);  // 流设到开始处
char c;
while (input.get(c)) {
cout.put(c);
}
cout << endl;
input.clear();  // 清除eof 和 fail标记位
}

input.seekg(0);
cout<< "把缓冲区指针传给流,输出全部内容\n" << input.rdbuf();
}

#if 0 ///////////// 以下内容为学习程序的资料,不编译 ////////////

// 建立一个 file stream 缓冲区,并将它装在两个stream对象上
filebuf buffer;
ostream output(&buffer);
istream input(&buffer);
buffer.open("test.txt", ios::in | ios::out | ios::trunc);

// 通常利用 class fstream 打开文件进行读写操作
fstream file ("test.txt", ios::in | ios::out);

// 也可以采用两个不同的 stream对象,一个用于读取,一个用于改写
ofstream out ("test.txt", ios::in | ios::out);
istream in (out.rdbuf());

// 设置stream缓冲区,重定向cout输出到文件
ofstream file ("cout.txt");
cout.rdbuf(file.rdbuf());

#endif


C++ 的流挺好玩的,今天看 C++ 流 不好的评价http://topic.csdn.net/u/20110823/20/5600d38a-e4f3-48f1-a70e-bb3119e7c8a7.html自己去看 PDF 版 C++标准程序库了摘写了这些代码,调试玩玩
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: