ページ 11

ファイルの読み込み

Posted: 2010年8月02日(月) 17:06
by COUTION
はじめまして
ライブラリはDXライブラリで
VC++2010を使ってます
txtファイルを読みこんでint型の配列に入れてゲームのマップを作ろうとしてるんですか
intの変数にtxtの数字をうまく入れられません。
int map[5][5]={
{1,0,0,0,1},
{1,0,0,0,1},
{1,0,0,0,1},
{1,0,0,0,1},
{1,1,1,1,1},
};
このような事をファイルから読み込みたいんですがうまくできません
int FileHandle, y ,map ;

// test.txt を開く
FileHandle = FileRead_open( "test.txt" ) ;

// 表示Y座標の初期化
y = 0 ;

// ファイルの終端が来るまで表示する
while( FileRead_eof( FileHandle ) == 0 )
{
    // 一文字読む
    map = FileRead_getc( FileHandle ) ;

    // 画面に描画
    DrawFormatString( 0, y , GetColor( 255,255,255 ) , "%d" , map) ;

    // 表示Y座標を下にずらす
    y += 16 ;
}

// ファイルを閉じる
FileRead_close( FileHandle ) ;


---test.txtの中身----
10001
10001
10001
10001
11111
---------------------
これでためしに表示してみたんですが
49
48
48
48
49
・・・
(以下略)
みたいになります
1
0
0
0
1
みたいになれば配列に入れてやろうと思ったんですが・・・
どうすればいいでしょうか?
説明下手ですいません 画像

Re:ファイルの読み込み

Posted: 2010年8月02日(月) 18:02
by お豆
確認できる環境にいないので、質問になってしまいますが
31じゃなくて49になるんですか?
---2010_8_2 19:49--------------------
(追記)そういえば10進数は49でしたね、解決方法は出てたみたいなので、追記編集としました

プログラムの雰囲気からして、文字'1'(31)をmap変数に入れて、それを整数値として
出力しているように見えますけど 画像

Re:ファイルの読み込み

Posted: 2010年8月02日(月) 18:11
by COUTION
0は48、1は49、2は50って感じです

>プログラムの雰囲気からして、文字'1'(31)をmap変数に入れて、それを整数値として
>出力しているように見えますけど

多分そうです
文字'1'を整数値の1にするやり方が分からなくて
どうしたらいいでしょうか?

Re:ファイルの読み込み

Posted: 2010年8月02日(月) 18:18
by toyo
48を0にしたいのですから48を引けばいいのではないでしょうか
map = FileRead_getc( FileHandle ) - 48;
または
map = FileRead_getc( FileHandle ) - '0';
のような書き方もよく見ます

Re:ファイルの読み込み

Posted: 2010年8月02日(月) 18:52
by COUTION
なるほど!
そういう考えは思いつきませんでしたw
これで出来そうです!
お豆さんtoyoさんありがとうございました!
解決しておきますが何か他にも良いやり方などありましたら教えてくれるとありがたいです

Re:ファイルの読み込み

Posted: 2010年8月03日(火) 00:02
by nanashi
FILE *pFile = NULL;
int data;
int array[5][5];
if( ( pFile = fopen( test.txt, "r" ) ) != NULL ){
for( int y = 0; y < MAP_Y; y ++ ){
for( int x = 0; x < MAP_X * MAP_MAX; x ++ ){
fscanf( pFile, "%d", &data );
array[5][5][ y ][ x ] = data;
}
}
}else{
printf("読み込めない\n");
}

fclose( pFile );

---test.txtの中身----
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 1 1 1 1
---------------------
これはどうでしょうか?

Re:ファイルの読み込み

Posted: 2010年8月03日(火) 00:31
by COUTION
出来ました!w
nanashiさん
ありがとうございました!