現在ゲームのスコアのセーブ処理を作っています。
そこで
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
fgets で値が取得できない
-
cgi.pm を使用してファイルUP時...
-
文字列をカウントする方法
-
drtファイルはどうしたら開...
-
PerlでのUseless use...
-
重複ファイル名ある場合ファイ...
-
Perlでのパーミッション変更の仕方
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
ExcelをCSV書き出す場合のシー...
-
Perlで空白行を削除
-
perlにて2つのファイル比較
-
動かなくなったのでJavaソース...
-
DOSコマンドで、標準出力を出力...
-
バッチファイルの作り方(CSV→...
-
Windowsで複数のファイルを同じ...
-
全角と半角文字が混在している...
-
VBAでCSVファイルを途中行まで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
python renameについて
-
VBAコードを張り付け後のエクセ...
-
ファイルの存在の有無を確かめ...
-
行を指定して削除する方法PERL
-
ファイル全てを .xlsm に変更し...
-
VBA テキストファイルを読み取...
-
Firefox で file:// で始まる U...
-
fgets で値が取得できない
-
perl ファイルが開かない
-
MATLABのm-fileについて
-
Perl の「stringify」の意味に...
-
JSP URLに表示される拡張子 .jsp
-
PerlでのUseless use...
-
巨大なテキストの最終行を取得...
-
複数ファイルを1つにするシェ...
-
drtファイルはどうしたら開...
-
fopen64について
-
ヒアドキュメントの書き方
おすすめ情報