前提・実現したいこと
main.c(30)でファイル読み込みエラーを再現したい。
①正常なデータを読み込んでも戻り値が「0」で返ってくる。
正常なデータであれば、戻り値「1」が返ってくるはずである。
②ファイル読み込みエラーは、他にどのような書き方があるのかを教えて頂きたいです。
該当のソースコード
main.c
#include<stdio.h> typedef struct { char name[16]; /* 名前 */ long hp; /* HP */ long mp; /* MP */ char level; /* レベル */ char strength; /* 強さ */ char speed; /* 素早さ */ char wisdom; /* 賢さ */ long experience; /* 経験値 */ }S_STATUS; void main(void) { FILE *fp = NULL; S_STATUS character[3] = { 0 }; int rtc = 0; fp = fopen("SaveData.bin", "rb"); if (fp == NULL) { printf("ファイルオープンエラー"); } while (1) { if ((feof(fp) != 0)) { /* feof関数 */ break; /* 0 = ファイルの終端ではない */ } /* 0 != ファイルの終端 */ rtc = fread(character, sizeof(S_STATUS), 1, fp); if (rtc < 1) { printf("ファイル読み込みエラー"); break; } } fclose(fp); }
試したこと
fread関数の戻り値についてインターネットで調べた結果、fread関数の第3引数部分の個数が返ってくるという記載があった。
回答3件
あなたの回答
tips
プレビュー