lc (C) 和 c / ls (S) 和 s 在printf()功能上有什么区别?为什么ls(S)转换返回-1?
例子:
printf("%C", '??); // -1
printf("%c", '??); // PRINT
printf("%S", "? ans T"); // -1
printf("%s", "? and T"); // PRINT
Run Code Online (Sandbox Code Playgroud)
在 Mac..
从手册页:
l(ell) [...] 或后续
c转换对应于wint_t参数,或后续s转换对应于指向wchar_t参数的指针。
所以变化是预期的类型:
%c-int内部转换为unsigned char%lc —— wint_t%s - 指向以零结尾的数组的指针 char%ls - 指向以零结尾的数组的指针 wchar_t负返回值,例如-1, fromprintf()表示发生了错误。由于您没有显示任何代码,因此很难进一步确定。