fscanfでカンマ区切りの文字列を読み出したい
Posted: 2008年10月31日(金) 09:59
何度もお世話になっております、山崎です。
今回は、fscanf(本当はDXライブラリのFileRead_scanfなのですが)について
皆様のお知恵を貸してほしいと思い参りました。
現在、マップの内容が記述されたテキストファイルを読み込み、
マップのために確保された構造体の配列にファイルの内容を格納する処理を作っております。
読み込むテキストファイルには、
130,1 130,1 140,2 150,3
130,2 140,2 100,4 200,4
...
...
このように、short intとunsigned charが
スペースとカンマに区切られてたくさん記述されております。
「130,1」でひとつの構造体の内容を表しております。
カンマの前の数値をshort intへ格納し、カンマの後ろの文字をunsigned charに格納したいと思っています。
このファイルを読み込んで最終的には構造体のメンバに次々内容を格納していきたいと思い
次のコードを試しに書いたのですが、ビルドは通るのですが実行時エラーとなります。
なお、下のコードはテストのため、ファイルの全てを読み込まず最初の一行だけ読み込んでいます。
//"testtext.txt"は読み込むファイル名
short int testBuf;
unsigned char testBuf2;
int testMapFileHandle=FileRead_open("testtext.txt");
FileRead_scanf(testMapFileHandle,"%d,%c ",testBuf,testBuf2);
printfDx("%d\n%c\n",testBuf,testBuf2);
FileRead_close(testMapFileHandle);
どうすればファイルのカンマとスペースで区切られた文字列を、
short intとunsigned charに読み出すことができるのでしょうか。
基本的な質問かもしれませんが、皆様のお知恵をお貸ししてほしいと思います。
今回は、fscanf(本当はDXライブラリのFileRead_scanfなのですが)について
皆様のお知恵を貸してほしいと思い参りました。
現在、マップの内容が記述されたテキストファイルを読み込み、
マップのために確保された構造体の配列にファイルの内容を格納する処理を作っております。
読み込むテキストファイルには、
130,1 130,1 140,2 150,3
130,2 140,2 100,4 200,4
...
...
このように、short intとunsigned charが
スペースとカンマに区切られてたくさん記述されております。
「130,1」でひとつの構造体の内容を表しております。
カンマの前の数値をshort intへ格納し、カンマの後ろの文字をunsigned charに格納したいと思っています。
このファイルを読み込んで最終的には構造体のメンバに次々内容を格納していきたいと思い
次のコードを試しに書いたのですが、ビルドは通るのですが実行時エラーとなります。
なお、下のコードはテストのため、ファイルの全てを読み込まず最初の一行だけ読み込んでいます。
//"testtext.txt"は読み込むファイル名
short int testBuf;
unsigned char testBuf2;
int testMapFileHandle=FileRead_open("testtext.txt");
FileRead_scanf(testMapFileHandle,"%d,%c ",testBuf,testBuf2);
printfDx("%d\n%c\n",testBuf,testBuf2);
FileRead_close(testMapFileHandle);
どうすればファイルのカンマとスペースで区切られた文字列を、
short intとunsigned charに読み出すことができるのでしょうか。
基本的な質問かもしれませんが、皆様のお知恵をお貸ししてほしいと思います。