最近、私は C を学び始めましたが、ここでこのことに混乱しています ->
私はファイルを読み込んでその中の単語を数えていたJavaのプログラムを持っていました。今、私はそれをCで書き直そうとしています。
だから、Javaで私はこれを持っていました:
main() メソッドを持つクラス
...
File words = new File("AV1611Bible.txt");
WordReader wr = new WordReader(words);
...
WR クラスのコンストラクターの隣
private static final int READING_WHITESPACE = 11;
...
private int state;
private BufferedReader reader;
public WordReader(File words)
{
state = READING_WHITESPACE;
try
{
reader = new BufferedReader(new FileReader(words));
}
catch (FileNotFoundException e)
{
}
}
すべてが初期化され、使用できます。
Cでは次のようになります。
(メインクラス)
...
FILE* file;
char* fileToRead = "toRead.txt";
file = fopen(fileToRead, "r");
WordReader* reader = createWordReader(file);
...
ここで私を混乱させているのは、WR コンストラクターでこの FILE オブジェクトを正確に処理する必要があることです。
(WR用ヘッダーファイル)
typedef struct _WordReader
{
int state;
FILE* file;
} WordReader;
WordReader* createWordReader(FILE* fileToRead);
...
(WordReader.c)
WordReader* createWordReader(FILE* fileToRead)
{
WordReader* reader = malloc(sizeof(WordReader));
reader -> state = READING_WHITESPACE;
//-----------------
reader -> file; // What to do with it?
//-----------------
// reader -> file = fopen(fileToRead, "r"); Maybe? I've tried like this but
all I get is a bunch of errors.
//-----------------
return reader;
}