我想使用一些抽象对流进行操作,因此我想使用 fstream* 而不是 ifstream 和 ofstream。我试图这样做,但会导致访问冲突:
char* text= "test";
fstream* o = new fstream();
o = &fstream("name.txt");
o->write(text, 4);
o->close();
我该如何解决它,或使用其他想法?
我想在这种情况下使用指针(您可以在这里查看更多一般信息)如何在 C++ 中实现我自己的 IO 文件 API
更改后现在看起来像这样:
class GIO_Persistent_File_System : public GIO_CORE
{
public:
GIO_Persistent_File_System(void);
int open(char*, int);
int close();
void write(char* s, int size);
void read(char* s, int size);
public:
~GIO_Persistent_File_System(void);
private:
fstream file;
};
int GIO_Persistent_File_System::open(char* path, int mode){
file.open(path);
return 0;
}
int GIO_Persistent_File_System::close(){
file.close();
return 0;
}
void GIO_Persistent_File_System::write(char* s, int size){
file.write(s, size);
return;
}
void GIO_Persistent_File_System::read(char* s, int size){
file.read(s, size);
return;
}
主要的:
GIO_CORE* plik = new GIO_Persistent_File_System();
char* test = new char[10];
char* napis = "testgs";
plik->open("name.txt", OPEN_MODE);
plik->write(napis, 2);
//plik->read(test,2);
plik->close();
虽然我找不到文件,但这段代码似乎工作得很好。我检查并正确指向了当前目录(ProjectName/Debug)
我检查了它并将fstream 更改为 ofstream 将正常工作,我可以找到该文件。但是因为我想实现某种程度的抽象,所以我想使用 fstream。我该如何解决?