FileRead_scanfで
Posted: 2008年11月30日(日) 15:29
お世話になっております、山崎です。
以前、FileRead_scanfについてお伺いしましたが、申し訳ないながらもう一度
FileRead_scanfについてお尋ねしたいと思います。
現在、次のようなファイル(ポーション.itm)を、
":"の前後で二つの文字列型変数に分け読み出そうとしております。
ItemIndex:2
ItemName:ポーション
ItemExplanation:HPを80回復します。
そこで、以下のようなコードを書きました。
テストのため、まだループはさせないであります。
...
char ItemData1[20];
char ItemData2[200];
int ItemFileHandle=FileRead_open("ポーション.itm");
//do{
FileRead_scanf(ItemFileHandle,"%s:%s",ItemData1,ItemData2);
...
//}while(0==FileRead_eof(ItemFileHandle));
FileRead_close(ItemFileHandle);
...
このコードを実行したところ、
ItemData1には"ItemIndex:2",
ItemData2には"ItemName:ポーション"という文字列が代入されてしまい、
期待通りの結果が得られませんでした。
期待では、":"の前後で一行読み込んだ文字列を分け、
":"以前をItemData1,":"以降をItemData2に格納したいと思っています。
例のファイルの一行目を読んだとすると、
ItemData1には"ItemIndex"、ItemData2には"2"を代入させたい、といった感じです。
":"ではなく" "(スペース)でファイルの文字列を区切ったところ
とりあえずは期待通りの文字列がItemData1とItemData2に格納されたのですが、
やはり":"だと動かない理由が気になります。
どのようにすれば、ファイルの":"の前後の文字列をItemData1とItemData2に分けて
取り出せるのでしょうか。
皆様のお知恵におすがりしたいと思います。
以前、FileRead_scanfについてお伺いしましたが、申し訳ないながらもう一度
FileRead_scanfについてお尋ねしたいと思います。
現在、次のようなファイル(ポーション.itm)を、
":"の前後で二つの文字列型変数に分け読み出そうとしております。
ItemIndex:2
ItemName:ポーション
ItemExplanation:HPを80回復します。
そこで、以下のようなコードを書きました。
テストのため、まだループはさせないであります。
...
char ItemData1[20];
char ItemData2[200];
int ItemFileHandle=FileRead_open("ポーション.itm");
//do{
FileRead_scanf(ItemFileHandle,"%s:%s",ItemData1,ItemData2);
...
//}while(0==FileRead_eof(ItemFileHandle));
FileRead_close(ItemFileHandle);
...
このコードを実行したところ、
ItemData1には"ItemIndex:2",
ItemData2には"ItemName:ポーション"という文字列が代入されてしまい、
期待通りの結果が得られませんでした。
期待では、":"の前後で一行読み込んだ文字列を分け、
":"以前をItemData1,":"以降をItemData2に格納したいと思っています。
例のファイルの一行目を読んだとすると、
ItemData1には"ItemIndex"、ItemData2には"2"を代入させたい、といった感じです。
":"ではなく" "(スペース)でファイルの文字列を区切ったところ
とりあえずは期待通りの文字列がItemData1とItemData2に格納されたのですが、
やはり":"だと動かない理由が気になります。
どのようにすれば、ファイルの":"の前後の文字列をItemData1とItemData2に分けて
取り出せるのでしょうか。
皆様のお知恵におすがりしたいと思います。