
現在ゲームのスコアのセーブ処理を作っています。
そこで
struct score {
int english;
int math;
int physic;
};
struct score tom, judy, tanaka;
などという構造体を作ってセーブファイルを作る場合
の処理を書いたのですが、
FILE *file; //ファイルオープン
file = fopen("save.txt","w+");
fprintf(file,"%d %d %d ", tom.english, tom.math, tom.physic);
fprintf(file,"%d %d %d ", judy.english, judy.math, judy.physic);
fprintf(file,"%d %d %d ", tanaka.english, tanaka.math, tanaka.physic);
fclose(file); //ファイルクローズ
などと同じことを冗長に何度も繰り返して書かねばなりません。
fprintfなどで構造体のメンバー全てを一気に全部書き出すなどというのは可能なのでしょうか?
No.4ベストアンサー
- 回答日時:
数が固定なら
#define SCORE_COUNT3
struct score data[SCORE_COUNT];
fwrite(data, sizeof(struct score), SCORE_COUNT, file);
可変ならmalloc等で領域確保し同じように一括書込み。
No.3
- 回答日時:
環境依存になりますが
fwrite(tom,sizeof(score),1,file);
で書いて
struct score *buf;
buf=(struct score *)malloc(sizeof(score));
fread(buf,sizeof(score),1,file);
じゃだめですか。
No.1
- 回答日時:
同じことを繰り返すのなら関数を作ってしまえば?
void PrintScore(struct score a, FILE *fp){
fprintf(fp,"%d %d %d ", a.english, a.math, a.physic);
}
C++なら出力用のメンバ関数を構造体に入れちゃうとかね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
drtファイルはどうしたら開...
-
並び方、
-
csvファイルの横方向への改行に...
-
ファイル全てを .xlsm に変更し...
-
Windowsで複数のファイルを同じ...
-
FindFirstFileとFindNextFileで...
-
DOSコマンドで、標準出力を出力...
-
パスから最後のディレクトリだ...
-
Perl 時間同士の差
-
C++でのテキストファイル読み込...
-
空白文字 \\f と\\v の違いに...
-
テキストファイルから日本語部...
-
C言語で特定の行を抽出する方法...
-
タブの色を変更する方法
-
chdirがうまくできない
-
awkスクリプトでダブルクォーテ...
-
エラーログ「\\x8ew\\x92\\xe8...
-
JavaでCSVファイルを高速に読む...
-
Perl Vlookupみたいに
-
大量メールの任意のヘッダだけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル全てを .xlsm に変更し...
-
python renameについて
-
fgets で値が取得できない
-
drtファイルはどうしたら開...
-
window.open でのファイル指定方法
-
ファイルの存在の有無を確かめ...
-
VBAコードを張り付け後のエクセ...
-
複数ファイルを1つにするシェ...
-
csvファイルの横方向への改行に...
-
WindowsでPerlをする際,1行目の...
-
AutoNts
-
JSP URLに表示される拡張子 .jsp
-
CGIがうまく動作しません。原因...
-
powerpointでwebページとして保...
-
MySQLにバイナリデータを正常に...
-
巨大なテキストの最終行を取得...
-
PerlでのUseless use...
-
Cでのファイルからの入力および...
-
foreach内での変数の扱い?
-
一つのテキストファイルと複数...
おすすめ情報