2009-08-02 110 views

回答

4

從MSDN:

%C

type: int or wint_t 

當與printf的功能所使用的, 指定單字節字符;與wprintf函數一起使用時, , 指定寬字符。

%C

type: int or wint_t 

當與printf的 功能使用時,指定一個寬字符;當與wprintf函數一起使用時, 指定一個單字節字符。

更多關於格式說明here

4

MSDN

%C

當與printf的功能使用時,指定一個單字節字符;當與wprintf函數一起使用時,指定一個寬字符。

%C

與printf函數一起使用時,指定寬字符;當與wprintf函數一起使用時,指定一個單字節字符。

4

注意%C是不是標準。字符的標準轉換爲:

  • %c用於int。如果是unsigned char,則輸出printfwprintf通過btowc輸出轉換結果爲wchar_t
  • %lc用於wint_tprintf通過wcrtomb將轉換結果輸出到多字節字符串。 wprintf輸出它就好像它是一個wchar_t
+0

這也意味着* w * printf functinos中%c的Microsoft行爲也不符合規定。來自MSDN:「C,n,p和S類型以及c和s printf函數的行爲都是Microsoft擴展,並且與ANSI不兼容。」 – 2009-08-02 08:37:40