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
ます。
私の意見です。