具体请参考MSDN。
下面只举几个经常会碰到的例子:
char szTemp[] = "abcdefg";
wchar_t szWchar[] = L"hijklmn";
1,printf("%s", szTemp);
输出:abcdefg;
"printf"与"%s"合用表示按单字节字符串来解释szTemp。
2,wprintf(L"%S", szTemp);
输出:abcedef;
"wprintf"与"%S"合用表示按单字节字符串来解释szTemp。
3,printf("%S", szWchar);
输出:hijklmn;
"printf"与"%S"合用表示按宽字节字符串来解释szWchar。
4,wprintf(L"%s", szWchar);
输出:hijklmn;
"wprintf"与"%s"合用表示按宽字节字符串来解释szWchar。
5,
printf("%hs", szTemp);
wprintf(L"%hs", szTemp);
printf("%hS", szTemp);
wprintf(L"%hS", szTemp);
都输出:abcedef ;
不管是"wprintf",还是"printf",当它们与"%hs"或者"%hS"合用时,表示按单字节字符串来解释szTemp。
6,
printf("%ls", szWchar);
wprintf(L"%ls", szWchar);
printf("%lS", szWchar);
wprintf(L"%lS", szWchar);
都输出:hijklmn;
不管是"wprintf",还是"printf",当它们与"%ls"或者"%lS"合用时,表示按宽字节字符串来解释szWchar。
7,输出short类型
short sh = 32;
printf("%hd\n", sh);
8,输出__int64类型
__int64 qwValue = 12345678910;
printf("%I64d\n", qwValue);
注意:不能用printf("%d\n", qwValue);输出__int64类型的数据。