私のプログラムがファイルからデータを読み込むのに問題があります。問題は、ファイルが現在空であることです。プログラムが実行されるたびに、books []の1つの配列が読み込まれ、後でそのコードに書き込まれます。 10個の構造体がすべてファイル内にあるときにはうまくいくとは思うが、ファイルが空で10個の構造体を読み込もうとするとクラッシュする。ファイルから未知数の構造体を読み取る - C
ファイルから(10まで)構造体の数が不明で読み込む方法はありますか?
struct stock
{
char name[31];
int stock;
};
int main (void)
{
stock books[10];
FILE *fptr;
fptr = fopen("stock.dat", "rb");
fread(books, sizeof(struct stock), 10, fptr);
fclose (fptr);
}
どこがクラッシュしますか?エラーは何ですか?これは奇妙なことにほぼ完全な問題の記述です。 – tbert
ファイル形式を管理している場合(つまり、他の人が定義していない場合)、バイナリの代わりにテキスト形式(例:名前、行ごとに1つ)を使用することをお勧めします。これはもう少しコードを意味しますが、コードを一度書くだけです。ファイルはずっと使いやすくなります。 –