- ベストアンサー
文字列について
textファイルをいくつかに分割して保存しようと思い、以下のプログラムを作りましたが、うまくいきません。 予定では "0000.txt", "0001.txt", ....と文字列を生成するはずです。 #include <stdio.h> #include <string.h> #define LENGTH 4 //番号の桁数 void filename(int n) { char name[LENGTH +4 +1]; char text[5] = ".txt"; int i; for(i = 0; i <= LENGTH; i++) name[i] = '0'; i = LENGTH; //自然数を文字列に変換 do{ name[i] = (char)(n%10 + 48); i--; n /= 10; }while(n != 0 && i >= 0); strcat(name, text); printf("filename:%s", name); } int main(void) { int i; for(i = 0; i < 5; i++){ filename(i); printf("\n"); } return 0; } 実行結果は filename:00000@.txt filename:00001.txt filename:00002.txt filename:00003.txt filename:00004.txt このように、文字化けしています。 何が原因なのでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- Tasuke22
- ベストアンサー率33% (1799/5383)
- koko_u_
- ベストアンサー率18% (459/2509)
- himajin100000
- ベストアンサー率54% (1660/3060)
お礼
sprintfは便利ですね。知りませんでした。 ありがとうござました。