C言語のファイル処理について、質問させていただきます。

補足

テキストファイルの画像を添付するのを忘れていました。 申し訳ございません。 以下、テキストファイルの内容となります。 /*-----------------------------------------------------------------------------------*/ 100 170 :A 125 165 :B 150 150 :C 165 125 :{ 170 100 :e 165 75 :F 150 50 :g 125 35 :H 100 30 :1 75 35 :2 50 50 :3 35 75 :4 30 100 :! 35 125 :6 50 150 :# 75 165 :8 103 108 :Success-File

C言語関連 | プログラミング105閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

申し訳ございません。 補足にテキストファイルの内容をコピペしたので、ご確認のほど、よろしくお願いいします。

ThanksImg質問者からのお礼コメント

大変勉強になりました。 BAは、回答が早かったWindcatさんにいたします。 ご回答いただきありがとうございました。

お礼日時:7/1 19:34

その他の回答(1件)

0

なるべく元のプログラムを保持したまま修正してみました。 修正点1 修正前:char cc[NAME]; //':'を削除した文字列配列を格納 修正後:char* cc[NAME]; 修正点2 修正前: //c配列の ' : ' を削除する char *tmpstr; for(i = 0; i < count; i++){ ・・ } // for文終わり 修正後: //c配列の ' : ' を削除する char *tmpstr; for(i = 0; i < count; i++) {     tmpstr = c[i];     while(*tmpstr != '\0') {         if(*tmpstr == ':') {             cc[i] = tmpstr + 1; // ':' を飛ばす             break;         }         tmpstr++;     } } 修正点3 修正前:printf("%c\n", cc[i]); //%sにするとなぜかエラーが出る 修正後:printf("%s\n", cc[i]);

ご回答ありがとうございます。 無事、実行できました。 ポインタに + 1 をする発想は思いつきませんでした。 さらに、プログラムの形をなるべく変更せずに修正してくださり、 ありがとうございました。