5

unsigned char ストリームの用途は何ですか。

以下のような符号なし文字ストリームがある場合、そのストリーム内の値を出力するにはどうすればよいですか。

通常の文字ストリームまたは文字列の場合、%s を使用して出力できますが、これはどうでしょうか。

前もって感謝します。

unsigned char *ptr ="(some value)"
4

2 に答える 2

7

unsigned char文字列の扱いに関しては、と plainの間に顕著な違いはありませんchar。後者は署名付きまたは未署名のいずれかであり、実装定義です。ただし、すべてのシンボル テーブルには常に正のインデックスがあります。したがって、文字列を扱っている場合は、 と の間unsigned charでいつでも安全にキャストできますchar。(この 2 つの型の間のポインター キャストは、標準では正式に定義されていない動作ですが、実際には、これまでに作成されたどのシステムでも常に機能します。)

したがって、printf("%s", ptr);正常に動作します。

于 2013-08-22T06:46:31.420 に答える
3

unsigned char 配列は通常、生のバイト データを表し、 を使用してそれを文字列として出力したい場合%sは、意味のない意味不明な文字が得られる可能性があります。本当に値を確認したい場合は、1 バイトを に変換してから.shortで出力することをお勧めし%iます。

私の意見です。

于 2013-08-22T07:02:44.783 に答える