一、流的本质
无论是istream,ostream,fstream背后的本质都是FILE*, 同样的道理,可以写一个自己的流类。
二、测试案例
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
class MyStream {
public:
MyStream(char* filename, char* mode) {
fp = fopen(filename, mode);
}
char get() {
return fgetc(fp);
}
void put(char ch) {
fputc(ch, fp);
}
void seek(int offset, int where) {
fseek(fp, offset, where);
}
protected:
FILE* fp;
};
int main() {
MyStream ms("abc.txt", "w+");
ms.put('a');
ms.seek(0, SEEK_SET);
cout << ms.get() << endl;
system("pause");
return 0;
}
输出结果: