Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sprintf在android 5.0中无法正常工作_Android_C_Android Ndk - Fatal编程技术网

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:因为微软无论如何都不符合标准,这是一个非常糟糕的参考。标准是关于行为的。源文件中的中文字符是如何编码的

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:因为微软无论如何都不符合标准,这是一个非常糟糕的参考。标准是关于行为的。源文件中的中文字符是如何编码的?如果它使用允许“%”作为字节值的编码,您会遇到麻烦。您是否在Android 4.3和5.0中使用相同的二进制文件,并看到不同的行为,或者使用NDK工具重建该版本?如果是后者,您是否确定字符串在该版本中未被修改编译器输出?您如何检查输出?是否有可能输出确实存在,但logcat正在剥离它?可能相关: