В чем разница между %c и %C в printf?
-
10-07-2019 - |
Вопрос
Я могу найти ссылки только на маленькие c.Я предполагаю, что заглавная буква C предназначена для Юникода, но я не уверен.Для меньших чисел оба выводят один и тот же символ.
Решение
Из MSDN:
%с
type: int or wint_t
При использовании с функциями Printf указывается однобайтный символ;При использовании с функциями WPRINTF указывается широкий символ.
%С
type: int or wint_t
При использовании с функциями печати указывается широкий символ;При использовании с функциями WPRINTF указывается однобайтный символ.
подробнее о спецификаторах формата здесь
Другие советы
От MSDN
%с
При использовании с функциями printf указывает однобайтовый символ;при использовании с функциями wprintf указывает широкий символ.
%С
При использовании с функциями printf указывает широкий символ;при использовании с функциями wprintf указывает однобайтовый символ.
Обратите внимание, что %C не является стандартным.Стандартное преобразование символов:
- %c используется для
int
.printf
выведите его так, как если бы это былоunsigned char
.wprintf
вывести результат преобразования вwchar_t
кbtowc
. - %lc используется для
wint_t
.printf
выведите результат преобразования в многобайтовую строку с помощьюwcrtomb
.wprintf
выведите его, как если бы это былоwchar_t
.