2つのファイルポインタを含む構造体を作成しようとしています。私は、ファイルを開閉する機能を使用するためにこれを使用できるようにしたいと思いC言語、ファイルの構造
typedef struct dataFiles
{
FILE * inputSet;
FILE * outputSet;
}fData;
、私はここ1を持っている(下記参照):
void openFiles(struct dataFiles * fiData)
{
fiData->inputSet = fopen("inputfile.txt","r");
fiData->outputSet = fopen("outputfile.txt","o");
return fiData;
}
主な機能では私が最初に
openFiles(&fileData);
:経由して、それを試してみて、アクセスした後
fdata * fileData;
:として構造体を宣言
私のプログラムが実行され、コンパイルされますが、私は出力ファイルをチェックするとinputfileからstructにデータを取得する際に問題が発生します。すべて0です。このタイプのコードを実装する方法に関する一般的なヒントは、高く評価されます。 (注:これは学校の課題に関する質問ですが、私は既に課題の要件を満たしており、自分の好奇心のためにこれに興味を持っています)〜ありがとう!それが好き
あなたが投稿したコードから少なくとも2つの事柄について不平を言っている(少なくとも警告) - 'void'関数の非void式を返し、' openFiles() 'への間違った種類のポインタを渡そうとすると、 '。 'fileData'宣言のタイプミスはもちろんです。 –
を副次的に書いておきますが、ASCIIファイルだけを開いている場合を除き、fopenに "b"フラグを付けてください。すなわち 'fopen(filename、" rb ")'を使用します。違いは、ファイルがなければEOFを早く得ることです。 – chacham15
あなたのプログラムは警告なしでコンパイルされますか? ヒント:コンパイラ警告を無視しないでください! – asaelr