C: http://www.alt-codes.net/で文字の一覧を出力してみます
for (i=0; i<len; i++){
printf("%d\t: %c", i, i);
}
私が得たすべての非ASCII文字の問題?Ubuntuに取り組んでいます。
それらをうまく出力するにはどうすればよいですか。
C: http://www.alt-codes.net/で文字の一覧を出力してみます
for (i=0; i<len; i++){
printf("%d\t: %c", i, i);
}
私が得たすべての非ASCII文字の問題?Ubuntuに取り組んでいます。
それらをうまく出力するにはどうすればよいですか。
書式設定は貧弱になりますが、それ以外は、投稿したコードは機能します。
ASCII 文字 0 ~ 31 はさまざまな空白文字であり、それらを印刷する標準化された方法はありません。あなたが投稿したリンクは、一般的ですが、非標準の「拡張 ASCII テーブル」です。これらの正確なシンボルが特定のプラットフォームで印刷されるという保証はありません。
それらは Windows 7 で問題なく動作し、GCC と Embarcadero C++ でテストされ、どちらもこれらのシンボルを出力します。しかし、別の OS やコンパイラでは、別のシンボルが出力されるか、まったく出力されない場合があります。
ASCII 文字 32 ~ 126 のみが、すべてのシステムで印刷可能であり、同じ記号であることが保証されています。
さまざまなASCII文字、たとえば32未満の文字の多くは、印刷できません。印刷する前に、印刷できないものを他の何か(スペースなど)に変換する必要があります。
リンクしたALTコードはASCIIコードではないことに注意してください。
必要に応じて、16 進エディタのアプローチを採用し、グラフィカルな表現を持つ文字のみを印刷できます。その目的のために、isprint()
またはisgraph()
(最新のものは本質的に同じisprint()
ですが、スペースを印刷しないでください) を使用できます。 ctype.h の例:
for (i = 0; i < len; i++) {
printf("%d\t: %c", i, isprint(i) ? i : '.');
}