すっごい初歩的なことですがデータセーブロード

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
史上最悪のデスペナ
記事: 521
登録日時: 8年前

すっごい初歩的なことですがデータセーブロード

#1

投稿記事 by 史上最悪のデスペナ » 8年前

C++でテキスト形式ではセーブロードが出来ます。
例えば、

コード:

struct sPCStatous
{
	int Lv;
	int Power;
	int Attack;
	int Speed;
	int Hit;
	int Luck;
	int StatousPoint;
	int SkillPoint;
	int MagicPoint;
	int MagicType[8];
};
というのをセーブするときに

コード:

FILE *sf;
	sf = fopen("data\\data0.ESO","w");

	fprintf( sf, "%d\n", sPCStatous.Lv);
	fprintf( sf, "%d\n", sPCStatous.Power);
	fprintf( sf, "%d\n", sPCStatous.Attack);

/*・・・・・・・・・・・・・・・・・中略・・・・・・・・・・・・・・・・・・・*/

	fclose(sf);
としています。
そろそろバイナリ形式で保存できるようになりたいのですが、ネットで調べてもよく分かりません。例を書いていただけると嬉しいです

それと、こんな感じ
save(sf, sPCStatous)
に構造体をいっぺんにセーブする方法はありますでしょうか?

アバター
へろりくしょん
記事: 92
登録日時: 9年前
住所: 福岡

Re: すっごい初歩的なことですがデータセーブロード

#2

投稿記事 by へろりくしょん » 8年前

fwrite() 関数があります。

#include <stdio.h>
size_t fwrite(const void *buf, size_t size, size_t n, FILE *fp);

史上最悪のデスペナ
記事: 521
登録日時: 8年前

Re: すっごい初歩的なことですがデータセーブロード

#3

投稿記事 by 史上最悪のデスペナ » 8年前

fwrite(const void *buf, size_t size, size_t n, FILE *fp);
の存在は知っていましたが”size_t size, size_t n”の部分が分からなかったんですよね。

調べてみたらここのTopicNo.3

例2:
struct coord {
int x;
int y;
};
coord p;
fwrite(&p, sizeof(coord), 1, f); // 構造体をバイナリ形式で1個出力する

とありました。

例1:
fwrite("abc", sizeof(char), 3, f); // 文字を3個出力する
というようなのしか今まで見たことなかったので、どうすればいいのか全然わかりませんでした。

う・・・・・こんなに簡単だったとは。なんでこんなに悩んでたんだろう・・・・・・

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 9年前
住所: 北海道札幌市
連絡を取る:

Re: すっごい初歩的なことですがデータセーブロード

#4

投稿記事 by Dixq (管理人) » 8年前

それでしたらゲームプログラミングの館の
http://dixq.net/g/
3.11章からお読みください。

史上最悪のデスペナ
記事: 521
登録日時: 8年前

Re: すっごい初歩的なことですがデータセーブロード

#5

投稿記事 by 史上最悪のデスペナ » 8年前

おお・・・・半年ぐらいチェックしない間にいつの間にか開いている講座が増えている・・・・・。

閉鎖

“C言語何でも質問掲示板” へ戻る