2

独自の入出力ファイル API を実装したいと考えています。私がそうしたい理由は、低レベルには多くのファイル システム (ハードディスク、HTTP など) があり、ユーザーに共通のインターフェイスを提供する必要があるからです。API は次のようになります。

class GIO_CORE
{
public:
GIO_CORE(void);
virtual int open(char* path, int openMode) = 0;
virtual int close() = 0;
virtual void write(char* s, int size) = 0;
virtual void read(char* s, int size) = 0;
    //many more
};

だから今、私は最も簡単なハードディスクメモリを実装しています。私がやりたい方法は、使用されている現在のファイルへの ifstream と ofstream ポインターを保持することです。したがって、Open 関数で ifstream または ofstream ポインター (OpenMode に応じて) を使用して、開いているファイルをポイントし、書き込みまたは読み取り関数でこの fstream を操作します。それを行うためのより良いアイデアはありますか?

編集:解決された以下の問題

とにかく、ヘッダーに ifstream と ofstream を追加すると、コンパイル エラーが発生します。

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);
ifstream infile; **this causes compilation error**

そして、エラーは次のとおりです。

どうすればこれを解決できますか?

4

2 に答える 2

1

stdC++ 標準ライブラリ ヘッダーで定義されている型は名前空間で定義されていることを忘れないでください。

std::ifstream infile;
于 2013-03-28T12:17:11.400 に答える
-2
#include <fstream>
using namespace std;

おそらくあなたの問題を解決します

于 2013-03-28T12:19:39.227 に答える