(void)sprintf(Thermo_Buff,"%s\xC2\xB0""",a); //to add to buffer
3 に答える
4
文字列リテラルでは、バックスラッシュ\
が特殊文字のプレフィックスとして使用されます。"\n"
たとえば、改行( )について知っていると思います。
バックスラッシュの後の特殊文字が の場合x
、次の 2 文字が 16 進数であり、これらの 2 桁がコンパイラによって文字に変換されることを意味します。
あなたの例では、呼び出しは文字列を追加し、次に16進数にsprintf
基づいて2つの別個の文字を追加し、度文字のUTF-8です(たとえば、この参照を参照してください)。0xc2
0xb0
于 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 に答える