- ベストアンサー
メモ帳の表示
アスキーコード(キャラクターコード)の一覧をメモ帳表示(ファイル名.txt)させようと思って int i; for(i=0;i<=255;i++) fprintf(fp,"%d=%c\n",i,i); としたところ、未定義部分、たとえば129からの表示が 129=・↑130=・↑(以下続く) となり、"\n"がファイルに書かれているはずなのに改行されません。 何故でしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2バイト文字と解釈されてるだけでしょう。 fprintf(fp,"%d=%c \n",i,i); %cの後にスペースでも入れてください。 そもそも、ヌル文字やEOFなども含むので、テキストエディタで正常に開くことを期待してはいけません。
その他の回答 (2)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★メモ帳について ・メモ帳で表示される文字は、フォントファイルで定義されている文字のみです。 ・よって、未定義部分のフォントが定義されていないために『・』という文字に 表示されるのです。 ・あと、改行は Windows では『\r\n』の2バイトすので『\n』の1つだと改行 ではなくて『new line』次に行へカーソルなどが移動するだけです。 『\r\n』の『\r』が復帰コード、『\n』が改行コードで2バイトで『改行文字』 の機能になります。→なお OS が Windows の場合ですよ。 ・メモ帳では『アスキーコード』の一覧はできないようです。 ・以上。おわり。→未定義部分の文字フォントがないので『・』と表示される。
お礼
メモ帳に仕様外のコードを送ったことが原因と理解しました。ありがとうございました。
- koko_u_
- ベストアンサー率18% (459/2509)
環境依存か? ウチでは普通にメモ帳で見れましたが。 WindowsXP SP2 VisualStudio 2005 とりあえず、バイナリエディタでコードが正しくセットされているか見てちょ。
お礼
バイナリーエディタをDLして見てみました。"\n"部分はどこも"0D 0A"でした。見方が分かりました。ありがとうございました。
お礼
スペースを入れたら良好となりました。スペースは正しく認識するということでしょうか。ありがとうございました。