sprintf在android 5.0中无法正常工作
sprintf在android 5.0中无法正常工作sprintf在android 5.0中无法正常工作,android,c,android-ndk,Android,C,Android Ndk,sprintf在android 5.0中无法正常工作 char buf[128]; sprintf(buf, "%d万", 10); android 5.0 buf的结果是“10”, 但在安卓4.3中,buf是“10”万", sprintf会修剪中文?永远不要使用sprintf,这是一个缓冲区溢出的邀请!使用snprintf代替。如果支持这种类型,你可以使用wchar代替char。@Dave:因为微软无论如何都不符合标准,这是一个非常糟糕的参考。标准是关于行为的。源文件中的中文字符是如何编码的
char buf[128];
sprintf(buf, "%d万", 10);
android 5.0 buf的结果是“10”,
但在安卓4.3中,buf是“10”万",
sprintf会修剪中文?永远不要使用
sprintf
,这是一个缓冲区溢出的邀请!使用snprintf
代替。如果支持这种类型,你可以使用wchar
代替char
。@Dave:因为微软无论如何都不符合标准,这是一个非常糟糕的参考。标准是关于行为的。源文件中的中文字符是如何编码的?如果它使用允许“%”作为字节值的编码,您会遇到麻烦。您是否在Android 4.3和5.0中使用相同的二进制文件,并看到不同的行为,或者使用NDK工具重建该版本?如果是后者,您是否确定字符串在该版本中未被修改编译器输出?您如何检查输出?是否有可能输出确实存在,但logcat正在剥离它?可能相关: