Lesson4 ファイル読み込み

ファイル読み込みはfopen、fread、fcloseを使っていきます。
テキストファイルはsample.txtで作成し、さっきのデータをそのまま入れます。
”とカンマとコメントは削除します。

(sample.txtの中)

1ここはダンジョンの中です。
1分かれ道があります。
3Y=まっすぐ進む、N=右に曲がる
49
55
1分かれ道があります。
3Y=左に曲がる、N=まっすぐ進む
412
51
1分かれ道があります。
3Y=左に曲がる、N=右に曲がる
41
1分かれ道があります。
3Y=まっすぐ進む、N=右に曲がる
41
1出口だ
0
        

次のように改良します。

#define MAX_SCRIPT_LINE 20 //スクリプトの最大行
char Data[MAX_SCRIPT_LINE][80];//スクリプトデータ
char temp[1000];//テンポラリ

void ScriptRead()
{//ファイルからスクリプトを読み込む
	FILE *fp;
	fp=fopen("sample.txt","rb");
	if(fp==NULL){
		printf("ファイルがありません\n");
		exit(0);
	}
	fread(temp,1,1000,fp);
	fclose(fp);
	int Adr=0,a,b=0;
	char c;
	for(a=0;a<1000;a++){
		c=temp[a];//1文字読み込み
		if(c==0x0d){//改行コードなら
			Data[Adr][b]=0;//文字終端を書き込み
			Adr++;b=0;//次の行設定
		}else if(c!=0x0a){//改行コード以外なら
			Data[Adr][b]=c;//1文字書き込み
			b++;//次の文字へ
		}
		if(Adr>=MAX_SCRIPT_LINE)
			break;//行をオーバーした
	}
}

int main()
{
	int Adr=0;
	int yes=0,no=0;//フラグ
	int ch;
	ScriptRead();//ここでファイルから読み出し
	printf("スクリプト開始します。\n");
        


今現在、ファイルが最大1000バイト、スクリプトが最大20行、1行につき79文字と
制限がついています。
この制限は後で取り除きますが、もう少し大きいスクリプトを作る場合は数値を
変えてみてください。

[戻る][次へ]

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!