• ベストアンサー

メモ帳の表示

アスキーコード(キャラクターコード)の一覧をメモ帳表示(ファイル名.txt)させようと思って int i; for(i=0;i<=255;i++) fprintf(fp,"%d=%c\n",i,i); としたところ、未定義部分、たとえば129からの表示が 129=・↑130=・↑(以下続く) となり、"\n"がファイルに書かれているはずなのに改行されません。 何故でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

2バイト文字と解釈されてるだけでしょう。 fprintf(fp,"%d=%c \n",i,i); %cの後にスペースでも入れてください。 そもそも、ヌル文字やEOFなども含むので、テキストエディタで正常に開くことを期待してはいけません。

helpcircle
質問者

お礼

スペースを入れたら良好となりました。スペースは正しく認識するということでしょうか。ありがとうございました。

その他の回答 (2)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★メモ帳について ・メモ帳で表示される文字は、フォントファイルで定義されている文字のみです。 ・よって、未定義部分のフォントが定義されていないために『・』という文字に  表示されるのです。 ・あと、改行は Windows では『\r\n』の2バイトすので『\n』の1つだと改行  ではなくて『new line』次に行へカーソルなどが移動するだけです。  『\r\n』の『\r』が復帰コード、『\n』が改行コードで2バイトで『改行文字』  の機能になります。→なお OS が Windows の場合ですよ。 ・メモ帳では『アスキーコード』の一覧はできないようです。 ・以上。おわり。→未定義部分の文字フォントがないので『・』と表示される。

参考URL:
http://wisdom.sakura.ne.jp/programming/c/c2.html
helpcircle
質問者

お礼

メモ帳に仕様外のコードを送ったことが原因と理解しました。ありがとうございました。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

環境依存か? ウチでは普通にメモ帳で見れましたが。 WindowsXP SP2 VisualStudio 2005 とりあえず、バイナリエディタでコードが正しくセットされているか見てちょ。

helpcircle
質問者

お礼

バイナリーエディタをDLして見てみました。"\n"部分はどこも"0D 0A"でした。見方が分かりました。ありがとうございました。