私は、C言語を使って格闘ゲームを作ろうとしています。
それは可能なのでしょうか?
また、本格的な格闘ゲームを作成できる
ソフトみたいなものがあれば教えてください
格ゲー
続、CSV読み込みについて
こんばんは、先日CSVの文字列読み込みについて質問させてもらいましたが。
何とかできたような気がしたのですが、実行してみるとうまくいきません。(DxLib)
CSVの中身は
文章,文章,文章
となっており、半角一文字づつ読み込みchar Mojiに代入し、それで条件分岐させてchar String[/url][512]に代入しています。
そこなんですが、全角の文字を一度半角分だけ読み込んで、配列次々に入れるとどうなるんでしょうか?
文字配列はもとの文章と同じものになるんでしょうか?
String[/url][512]を表示すると、化けた文字が出てくるんですが、原因は他でしょうか?
-------------------以下そのソース-------------------------
何とかできたような気がしたのですが、実行してみるとうまくいきません。(DxLib)
CSVの中身は
文章,文章,文章
となっており、半角一文字づつ読み込みchar Mojiに代入し、それで条件分岐させてchar String[/url][512]に代入しています。
そこなんですが、全角の文字を一度半角分だけ読み込んで、配列次々に入れるとどうなるんでしょうか?
文字配列はもとの文章と同じものになるんでしょうか?
String[/url][512]を表示すると、化けた文字が出てくるんですが、原因は他でしょうか?
-------------------以下そのソース-------------------------
int LoadSent(){
int fp,s=0,c=0;
char Moji;
char fname[32]={"dat/sent/sent.csv"};
fp = FileRead_open(fname);
if(fp == NULL){
MB("read error\n");
exit(1);
return -1;
}
while(1){
Moji = FileRead_getc(fp);
switch(Moji){
case '/':
while(FileRead_getc(fp)!='\n')
break;
case ',':
s++;
c=0;
break;
case '\n':
String[c]='\0';
FileRead_close(fp);
return 0;
break;
case EOF:
String[c]='\0';
FileRead_close(fp);
return 0;
break;
default :
String[c]=Moji;
c++;
break;
}
}
}
Re:続、CSV読み込みについて
String変数のメモリはちゃんと取っているか、どのように出力しているかが不明です。
可変長にしたいわけでないならString[ 100 ][ 512 ]とかでもいいです。
whileの後にブレイクかけて変数の中身を見るか
<全角の文字を一度半角分だけ読み込んで、配列次々に入れるとどうなるんでしょうか?
順番に代入すれば特に問題ありません。2バイト目も他のcaseには入らないはず。
もうちょっと詳しく知りたかったら「全角文字 1バイト目」とでも検索すれば解説サイト色々出てきます。
可変長にしたいわけでないならString[ 100 ][ 512 ]とかでもいいです。
whileの後にブレイクかけて変数の中身を見るか
for( int i = 0; i < s; i++ ) { OutputDebugString( String[ i ] ); OutputDebugString( "\n" ); }こんな処理でも作って出力パネルに表示すると良いんじゃないかな。
<全角の文字を一度半角分だけ読み込んで、配列次々に入れるとどうなるんでしょうか?
順番に代入すれば特に問題ありません。2バイト目も他のcaseには入らないはず。
もうちょっと詳しく知りたかったら「全角文字 1バイト目」とでも検索すれば解説サイト色々出てきます。
Re:続、CSV読み込みについて
>>ねこさん
どうも、ご回答ありがとうございます。(前回も)m(_ _)m
Stringを可変長にしたことがいけなかった、と言うことですね。
変数宣言部以外では可変長配列を変数で増やしたりするのはは不可能という解釈でよろしいでしょうか?
今度はちゃんと配列数を書いてみます。
どうも、ご回答ありがとうございます。(前回も)m(_ _)m
Stringを可変長にしたことがいけなかった、と言うことですね。
char String[/url][512]={ "文字", "文字", "文字", }だとちゃんとString[/url][512]に各文字列が入りますが、
変数宣言部以外では可変長配列を変数で増やしたりするのはは不可能という解釈でよろしいでしょうか?
今度はちゃんと配列数を書いてみます。
Re:続、CSV読み込みについて
なぜ、文字化けしていたのかわかりました。
原因は別のようです。
文字読み込みでなく、文字表示関数に問題がありました。
しかし、良い勉強になりました。(それにどうやら可変長は無理でした。)
ねこさんありがとうございました。
原因は別のようです。
文字読み込みでなく、文字表示関数に問題がありました。
しかし、良い勉強になりました。(それにどうやら可変長は無理でした。)
ねこさんありがとうございました。