困っています
Posted: 2011年3月28日(月) 18:08
初めて掲示板で質問させていただきます
DXライブラリを使ってRPG系のゲームを作ろうとしています
「ゲームプログラミングの館」を一通りよんでいきましたが
「発展知識編」の「t0 セーブデータの作り方」でつまずきました;
そのサンプルプログラムをコピペして実行(ビルド?)してみたんですが、
エラーがでて実行できませんでした;
「"fopen"の宣言を確認してください」って表示されます
「fopen」に宣言なんてあったっけ?とか思ったので ココで質問しました
環境
Windows 7
コンパイラ名 : VC++ 2008EE
自分の知識は
「苦しんで覚えるC言語」の「基礎編」 をある程度勉強してから
「ゲームプログラミングの館」を読んで勉強しています
プログラミングを初めて1ヶ月ぐらいです
↓↓こちらがコピペしたコードです
code
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//セーブデータの構造体
typedef struct{
int clear_flag; //クリアしたかどうかのフラグ
int money; //お金
int highscore; //ハイスコア
}save_data_t;
int main(){
char *name = "save_data.dat"; // save_data.dat(セーブデータファイル)
FILE *fp;
save_data_t save_data;
srand( (unsigned) time( NULL ) ); //時間による乱数の初期化
/*ファイルの内容からデータをロード*/
{
if( ( fp = fopen( name, "rb" ) ) == NULL ) {
printf("ファイルオープンエラー\n");
}
else{
//ファイルからデータを読み込む
fread( &save_data, sizeof(save_data_t), 1, fp ) ;
fclose( fp );//解放
printf("クリア:%d お金:%d ハイスコア:%d\n",
save_data.clear_flag, save_data.money, save_data.highscore);
}
}
{ //適当に値を代入してみる
save_data.clear_flag = rand()%2;
save_data.money = rand()%100;
save_data.highscore = rand()%10000;
}
/*データの内容をファイルにセーブ*/
{
if( ( fp = fopen( name, "wb" ) ) == NULL ) {
printf("ファイルオープンエラー\n");
}
else{
fwrite( &save_data, sizeof(save_data_t), 1, fp ) ;
fclose( fp );
}
}
return 0;
}
実行結果
クリア:0 お金:96 ハイスコア:1317
/code
DXライブラリを使ってRPG系のゲームを作ろうとしています
「ゲームプログラミングの館」を一通りよんでいきましたが
「発展知識編」の「t0 セーブデータの作り方」でつまずきました;
そのサンプルプログラムをコピペして実行(ビルド?)してみたんですが、
エラーがでて実行できませんでした;
「"fopen"の宣言を確認してください」って表示されます
「fopen」に宣言なんてあったっけ?とか思ったので ココで質問しました
環境
Windows 7
コンパイラ名 : VC++ 2008EE
自分の知識は
「苦しんで覚えるC言語」の「基礎編」 をある程度勉強してから
「ゲームプログラミングの館」を読んで勉強しています
プログラミングを初めて1ヶ月ぐらいです
↓↓こちらがコピペしたコードです
code
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//セーブデータの構造体
typedef struct{
int clear_flag; //クリアしたかどうかのフラグ
int money; //お金
int highscore; //ハイスコア
}save_data_t;
int main(){
char *name = "save_data.dat"; // save_data.dat(セーブデータファイル)
FILE *fp;
save_data_t save_data;
srand( (unsigned) time( NULL ) ); //時間による乱数の初期化
/*ファイルの内容からデータをロード*/
{
if( ( fp = fopen( name, "rb" ) ) == NULL ) {
printf("ファイルオープンエラー\n");
}
else{
//ファイルからデータを読み込む
fread( &save_data, sizeof(save_data_t), 1, fp ) ;
fclose( fp );//解放
printf("クリア:%d お金:%d ハイスコア:%d\n",
save_data.clear_flag, save_data.money, save_data.highscore);
}
}
{ //適当に値を代入してみる
save_data.clear_flag = rand()%2;
save_data.money = rand()%100;
save_data.highscore = rand()%10000;
}
/*データの内容をファイルにセーブ*/
{
if( ( fp = fopen( name, "wb" ) ) == NULL ) {
printf("ファイルオープンエラー\n");
}
else{
fwrite( &save_data, sizeof(save_data_t), 1, fp ) ;
fclose( fp );
}
}
return 0;
}
実行結果
クリア:0 お金:96 ハイスコア:1317
/code