1
(void)sprintf(Thermo_Buff,"%s\xC2\xB0""",a); //to add to buffer
4

3 に答える 3

4

文字列リテラルでは、バックスラッシュ\が特殊文字のプレフィックスとして使用されます。"\n"たとえば、改行( )について知っていると思います。

バックスラッシュの後の特殊文字が の場合x、次の 2 文字が 16 進数であり、これらの 2 桁がコンパイラによって文字に変換されることを意味します。

あなたの例では、呼び出しは文字列を追加し、次に16進数にsprintf基づいて2つの別個の文字を追加し、度文字のUTF-8です(たとえば、この参照を参照してください)。0xc20xb0

于 2013-03-13T09:01:07.673 に答える
1

これは、UTF-8 ユニコードとしてエンコードされた度記号です。

文字のより完全なリストと、UTF-8 での文字の外観については、こちらを参照してください。

于 2013-03-13T09:00:44.317 に答える
0

C では\x???、文字列リテラルの形式 (???は数字) はUnicode エスケープです。キーボードで入力できないUnicode文字を入力する方法です。この場合、この表c2 b0を見ると、 (\xC2\xB0コードに記述されたエスケープ シーケンスが度記号をエンコードしていることがわかります。つまり、これが意味することです。

于 2013-03-13T09:01:16.093 に答える