• ベストアンサー

ASCIIコード表の出力

ASCIIコード表を出力するプログラムを作成中なのですが、 1~32の’BEL’等が実行されてしまいコマンドプロンプト上に表示させることが出来ません。 現在、出力はcntをループさせ、 printf("%d | %c", cnt, cnt); の様にしております。 よろしくお願いします。

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

  • ベストアンサー
noname#48699
noname#48699
回答No.4

>表示させることが出来ません。 ・決めごと(*)ですから・・・。逆に、「表示」できてしまうと、その文字に決めた(割り当てた)「制御」が働かなくなってしまう。 ・例えば、cで printf( "\n" );としても改行(\n)してくれないと困りますよね。 ★printf()文は、コンソールに【コード】を送っているだけ、たまたまそのコードが、割り当てた「図形文字」だった場合、その【文字】を「表示」する、と考えればいいのでは・・・。 >現在、出力はcntをループさせ、printf("%d | %c", cnt, cnt);の様にしております。 ・参考URLのように、「制御文字」部分は、printf( "[%3d][%02X]\n", cnt, cnt);と10進と16進で【コード】そのものを「表示」させたら如何でしょう。 (*) 私は、EBSDICコードが文字コードとしての初物でしたが、まったくASCIIコードとは異なります。一企業(IBM)が決めただけ・・・。

参考URL:
http://e-words.jp/p/r-ascii.html
yamasan0829
質問者

お礼

やはり出来ないんですね。 言われてみるとその通りです。 ありがとうございました。 URL、参考にさせていただきます。

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

制御文字等はいずれにせよまともに表示することができません。 isprint関数で文字が表示可能かどうかを調べ、真ならそのまま表示、偽なら16進表示にするなどの工夫が必要です。

回答No.2

iscntrl()

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

cntの値が32から126までを表示するようにすればどうでしょう

yamasan0829
質問者

お礼

回答ありがとうございます。 やはりその方法しかないのでしょうか・・

関連するQ&A