printf()
函数中lc(C)和c / ls(S)与s之间有什么区别?为什么ls(S)转换返回-1?
例如:
printf("%C", 'ͳʹ); // -1
printf("%c", 'ͳʹ); // PRINT
printf("%S", "ͳ ans T"); // -1
printf("%s", "ͳ and T"); // PRINT
在mac ..
答案 0 :(得分:4)
从手册页:
l
(ell)[...]或以下
c
转换对应于wint_t
参数,或后续s
转换对应于指向wchar_t
参数的指针。
所以改变是预期的类型:
%c
- int
内部转换为unsigned char
%lc
- wint_t
%s
- 指向零终止数组char
%ls
- 指向零终止数组wchar_t
来自-1
的否定返回值(例如printf()
)表示发生了错误。由于您没有显示任何代码,因此很难进一步查明。