• ベストアンサー

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

  • アスキーコード表

    OS は WINDOWS(HOME EDITION)XP SP2, PC はエプソンの EDICube BB-100 のコマンドプロンプトで、いまだに turbo pascal を走らせています。必要があって pascal のプログラムから、画面に、下向きの矢印を表示させたいのですが、これが出来ません。上 (コード番号 28番)、左右(30,31番)の矢印は出せますが、下向きはどうしても無理なようです。やむを得ず、メモリにあるアスキーコードを調べると、29 番には 124 番と同じ縦線が入っていて、コードのどこにも下向き矢印はありません。これは何かの間違いではないかと思うのですが、どう対処すればよいのか分かりません。これについて何かご存じの方がいらっしゃればお教え下さい。

  • ASCIIコード入力

    プログラムを作っていてどうしてもわからなくなりまして… #include <stdio.h> int main(void) { char c; c=38; printf("%c\n",c); return 0; } この場合は&が出てくるからいいんですけど… #include <stdio.h> int main(void) { char c; scanf("%c",&c); printf("%c\n",c); return 0; } この場合は97をscanすると9が出てきます。ASCIIコード入力でaを表示させたいんですが、何が間違っているのでしょうか? 初心者なもので…お願いしますm(__)m

  • ASCIIコードについて

    先日、仕事でシリアルケーブルで接続されているPC~装置間にラインモニタをセットし、通信電文を調査したところ、「31B9AEB5」となっており、装置上には「19.5」と表示されていました。対応として、 0x31=1 0xB9=9 0xAE=. 0xB5=5 のようになっているようです。ASCIIコードだと考えると「0x31=1」は納得するのですが、「0xB9=9」以降が良くわかりません。上記データから0x80を引くと「0x39」「0x2E」「0x35」となり、ASCIIコード表のデータに一致します。 そこで質問なのですが、上記の場合「0xB9」「0xAE」「0xB5」はASCIIコードなのですか?ASCIIコード表など見てみると0x00~0x7Fの表はよく見かけます。ちなみに、このプログラムは海外で作られたようで、日本で言う「JIS」のようなコードなのでしょうか?

  • ASCIIコードを文字に変換したい

    環境はVisualStdio.Net 2008のC++ Windowsフォームアプリケーションです。 C++の経験はまったくありません。 unsigned char型の配列 box[12]の中に既にアスキーコードでデータが格納されています。(例:box[0] = 48'0') これをtextbox->textにアスキーコードではなく文字で格納し、実行時に画面で確認できるようにしたいのですが、 (char)でキャストしてもfomat()で%xや%cにしても「0」でなく「48」で出力されてしまいます。 調べたらVBにはchrという関数があるみたいなんですが、これと同じ機能を持つ関数はVC++にはないのでしょうか?

  • Linuxで標準出力したファイルの文字コードついて

    Linuxで2つのディレクトリの内容をtreeコマンドでそれぞれファイルに出力して、 その2つのファイルをdiffで比較して、その結果をファイルに出力するシェルを作成しました。 比較対象のディレクトリの内部には日本語でファイル名やディレクトリ名を付けているものもあります。 このシェルを手動で実行してファイルに出力された内容を確認すると、 日本語であるべきところは日本語で出力されています。 nkfコマンドでファイルの文字コードを確認すると「UTF8」となっています。 しかし、cronにてこのシェルを実行してファイルに出力された内容を確認すると 何故か日本語の部分が化けて(ASCIIのようです)しまいます。 nkfコマンドでファイルの文字コードを確認すると「ASCII」となっていました。 cronで実行した場合にも出力するファイルの文字コードを「UTF8」にしたいのですが どいうすればよいでしょうか? どなたかご教授願います。 よろしくお願いします。

  • コマンドラインに入力されている文字列の1文字を出力

    ○下記のコードについての質問になります #include <stdio.h> int main( int argc, /*コマンドライン引数*/ char *argv[] /*コマンドライン */ ) { int counter; /*ループカウンタ*/ for( counter = 0 ; counter < argc ; counter++) { printf( "argv[%d]:%s\n" , counter , argv[counter] ); } /*----------------------------------------------------------- printf( "コマンドラインの1文字を抜き取る:%c" , ????????); ------------------------------------------------------------*/ return (0); } ○質問 コマンドラインのプログラムになります。 「--」で囲っている部分になりますが、 コマンドラインに入力されている文字列の1文字だけを出力できるように したいのですが、どうすればこれを実現することができるのでしょうか?? 一例として >command.exe orange ringe ^^^^^^ と、コマンドを打ったときに、「^^」の部分になりますが、 orangeの「a」だけを出力させたい場合を、知りたいと思っております。 以上、宜しくお願いします。

  • 次のプログラムは、n個の中からr個とる組み合わせが何通りあるか求め出力

    次のプログラムは、n個の中からr個とる組み合わせが何通りあるか求め出力するものである。 ただしこの組み合わせは次のようにけいさんするものである nCr=n!/r!×(n-r)! ○の中にあてはまる数値や文字を教えてください C言語です #include<stdio.h> void main(void) { int a,b,n,r,cnt; int kumiawase; a=○; b=1; printf("n=10"); scanf("%d",&n); printf("r=3"); scanf("%d",&r); for(cnt=n;cnt>1;cnt--){ a=○; } for(cnt=r;cnt>1;cnt--){ b=b*cnt; } for(cnt=○;cnt>1;cnt--){ b=b*cnt; } kumiawase=○/○ printf("%d個から%d個とる組み合わせ=%d\n",n,r,kumiawase); }

  • いろいろなプログラミング言語の出力について

    プログラミングの学習をしたいと思っています。 いろいろな言語がありますが、全体像がはっきりしていません。 HTMLでは作成したファイルをブラウザーで出力できますし、VBAではエクセルソフト等で出力できます。 PythonやJavaでは、コマンドプロンプトで出力できますがグラフィック画面になりません。HP等に利用するには、レンタルサーバーを借りてしか実行できないのでしょうか。プログラムの動作を、無料で出力させるにはどうすればよいのでしょうか。 作成したプログラムを画面で確認していきたいと思っています。 素人なので質問内容自体がおかしいかもしれませんがお願いします。

  • プログラムを実行すると文字化けする。

    Windws98の頃に、VisualBasicで作成したプログラムを、Windows XP Professionalの、コマンドプロンプトで実行すると問題なく実行するのですが、Windows Server 2008 Standardの、コマンドプロンプトで実行すると、コマンドプロンプトの画面で漢字が文字化けしてしまいます。例えば、そのプログラムを、C:\プログラムというフォルダにおいて実行すると、コマンドプロンプトの表示が、C:\??????????>という表示なります。フォルダ名を漢字にしないと、文字化けはするのですが、プログラムは実行されます。何か設定で解決することは出来るのでしょうか。それとも、プログラムを作成し直した方が良いのでしょうか。

  • 2進数からアスキーコードへの変換についって

    趣味で電子工作を行っているものです。 picマイコンを使用して、A/D変換の結果10bitのデータを得ました。 8ビットのマイコンなので2つのレジスタに分かれてデータが格納されています。(上位2ビットと下位8ビット) この2進数のデータを10進数に変換し、一桁ごとにアスキーコードにして、シリアル通信を用いてPCに送りたいと思っています。 ここで、10bitのデータの2進数から10進数への変換。 10進数のデータを一桁ずつアスキーコードへ変換。 の2つのやり方がわかりません。 2進数のデータのままPCに送り、PCのソフト側で変換するほうが簡単なのですが、今回はPIC側で変換し、アスキーコードで送る必要があります。 プログラムに使用する言語はアセンブリです。 どなたか分かる方がいましたら教えてください。

専門家に質問してみよう