本文主要是介绍fstream的自实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
fstream的自实现
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <fstream>class Stream
{
public:Stream(char* path = NULL, char* mode = NULL){//为实现open功能,创建对象时没有初值直接返回,避免fopen参数为NULL出错if (path == NULL || mode == NULL)return;_fp = fopen(path, mode);if (_fp == NULL)cout << "open error!" << endl;}void open(char* path, char* mode){_fp = fopen(path, mode);}void put(char ch){fputc(ch, _fp);}void close(){fclose(_fp);_fp = NULL;}~Stream(){if (_fp != NULL)fclose(_fp);}private:FILE* _fp;
};int _tmain(int argc, _TCHAR* argv[])
{//fstream ifs("aa.txt", ios::in | ios::out | ios::trunc); //fopen("aa.txt",rw);//if (!ifs) //对 !符号进行重载 判断是否成功// cout << "open error!" << endl;fstream ifs;ifs.open("aa.txt", ios::in | ios::out | ios::trunc);ifs.put('a');ifs.put('b');ifs.close();cout << "================================" << endl;//Stream s("cc.txt", "w+");Stream s;s.open("cc.txt", "w+");s.put('a');s.put('b');s.put('c');s.put('d');s.close();return 0;
}
这篇关于fstream的自实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!