ページ 11

さらに課題研究にて

Posted: 2007年5月01日(火) 17:55
by 夏天
C言語では
fscanf(fp,"%d %s %s\n",&n,str1,str2);
のようにスペースで区切ったところずつ読んでいくというものを
DXではどのようにやるのでしょうか
まったく手が付かないので教えてください

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 18:22
by バグ
同じやり方で出来ますよ(;^_^A

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 18:41
by 夏天
むむ、できません・・・

なぜでしょう・・・

ちなみにソースはこうです

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int FileHandle ;
int n;
char str1[200],str2[50];
FILE *fp

// DXライブラリの初期化
if( DxLib_Init() == -1 ) return -1 ;

// test.cpp ファイルを開く
//FileHandle = FileRead_open( "test.txt" ) ;
fp = fopen("test.txt" , "r");


// 一行読む
fscanf(fp,"%d %s %s\n",&n,str1,str2);

// 画面に描画
DrawString( 0, 0, str1, GetColor( 255,255,255 ) ) ;

// キー入力を待つ
WaitKey() ;

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

// DXライブラリの後始末
DxLib_End() ;

return 0 ;
}

実行画面が半角のフがズラリとなっています

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 18:58
by box
> 	FILE *fp

セミコロンがないのは単なるtypoですか?

> 	fp = fopen("test.txt" , "r");

間違いなくオープンできていますか?
fpがNULLでないことを確認する必要があります。

また、fopen(), fscanf(), fclose()を使うのであれば、
stdio.hのインクルードが必要でありましょう。

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 18:58
by バグ
fopen関数を使うのに必要なファイルがインクルードされていませんよ(;^_^A
DxLib.hだけでは駄目です(>_<)

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 19:00
by バグ
うわ、モロ被りしてしまいました(苦笑)

Re:さらに課題研究にて

Posted: 2007年5月01日(火) 19:06
by 夏天
ほ、ホワアァ!できました!!
stdio.hはDXでインクルードしてくれているものだと勘違いしていました
インクルードしたところ無事動いたのでよかったです。

どうもありがとうございました!!

Re:さらに課題研究にて

Posted: 2007年5月02日(水) 13:55
by 管理人
遅くなりました・・。話題がさめた頃にやってきてすみませぬ(_ _|||)

ファイル関係の関数はDXライブラリ独自のものもあります。
http://homepage2.nifty.com/natupaji/DxL ... html#R19N1
ここから下に書いてある関数は全てそうです。
しかしこれらは、「読み込むだけ」なので、データを作ったりするときは普通のCの標準関数を使って欲しいと作者様からも言われました。

これは
http://homepage2.nifty.com/natupaji/DxL ... c.html#T11
アーカイブを使って全てのファイルを一つにしたとき、それを読み込むものですので違う用途で用意されたものです。

今後のご参考までに。。