2

C: http://www.alt-codes.net/で文字の一覧を出力してみます

for (i=0; i<len; i++){
    printf("%d\t: %c", i, i);
}

私が得たすべての非ASCII文字の問題?Ubuntuに取り組んでいます。

それらをうまく出力するにはどうすればよいですか。

4

4 に答える 4

1

書式設定は貧弱になりますが、それ以外は、投稿したコードは機能します。

ASCII 文字 0 ~ 31 はさまざまな空白文字であり、それらを印刷する標準化された方法はありません。あなたが投稿したリンクは、一般的ですが、非標準の「拡張 ASCII テーブル」です。これらの正確なシンボルが特定のプラットフォームで印刷されるという保証はありません。

それらは Windows 7 で問題なく動作し、GCC と Embarcadero C++ でテストされ、どちらもこれらのシンボルを出力します。しかし、別の OS やコンパイラでは、別のシンボルが出力されるか、まったく出力されない場合があります。

ASCII 文字 32 ~ 126 のみが、すべてのシステムで印刷可能であり、同じ記号であることが保証されています。

于 2012-10-24T14:12:45.910 に答える
0

さまざまなASCII文字、たとえば32未満の文字の多くは、印刷できません。印刷する前に、印刷できないものを他の何か(スペースなど)に変換する必要があります。

リンクしたALTコードはASCIIコードではないことに注意してください。

于 2012-10-24T14:08:44.090 に答える
0
于 2012-10-24T14:11:38.270 に答える
0

必要に応じて、16 進エディタのアプローチを採用し、グラフィカルな表現を持つ文字のみを印刷できます。その目的のために、isprint()またはisgraph()(最新のものは本質的に同じisprint()ですが、スペースを印刷しないでください) を使用できます。 ctype.h の例:

for (i = 0; i < len; i++) {
    printf("%d\t: %c", i, isprint(i) ? i : '.');
}
于 2012-10-24T14:53:40.653 に答える