unsigned char ストリームの用途は何ですか。
以下のような符号なし文字ストリームがある場合、そのストリーム内の値を出力するにはどうすればよいですか。
通常の文字ストリームまたは文字列の場合、%s を使用して出力できますが、これはどうでしょうか。
前もって感謝します。
unsigned char *ptr ="(some value)"
unsigned char文字列の扱いに関しては、と plainの間に顕著な違いはありませんchar。後者は署名付きまたは未署名のいずれかであり、実装定義です。ただし、すべてのシンボル テーブルには常に正のインデックスがあります。したがって、文字列を扱っている場合は、 と の間unsigned charでいつでも安全にキャストできますchar。(この 2 つの型の間のポインター キャストは、標準では正式に定義されていない動作ですが、実際には、これまでに作成されたどのシステムでも常に機能します。)
したがって、printf("%s", ptr);正常に動作します。
unsigned char 配列は通常、生のバイト データを表し、 を使用してそれを文字列として出力したい場合%sは、意味のない意味不明な文字が得られる可能性があります。本当に値を確認したい場合は、1 バイトを に変換してから.shortで出力することをお勧めし%iます。
私の意見です。