【发布时间】:2020-07-21 15:29:24
【问题描述】:
我是 C++ 新手,我想在将 char* 指针写入文件之前显示它的数据,但输出只有 5 个前字节。我不知道它有什么问题。我正在使用 __android_log_print 来显示日志。
这是将数据写入文件的代码:
Logcat 展示:
WriteUnbuffered 文件名 = /data/user/0/com.abc.helloleveldb/databases/leveldb/000003.log
WriteUnbuffered size = 37 ,data before encrypt = ��� -> only 5bytes .
但是数据写入整个文件,2对数据(test: okok and test1: hello)
如果您有任何建议,请帮助我。谢谢
【问题讨论】:
-
%d是size的不正确格式说明符,这会导致未定义的行为 -
@M.M 我看不出尺寸有什么问题。
-
嗯,有一个问题,我已经指出了,修复它是个好主意
-
@MM 谢谢。我将 %d 更改为 %zu。
-
"%s"需要一个以空字符结尾的字符串。您的数据是否以空值终止?如果没有,您应该避免使用任何依赖空终止缓冲区的 C 字符串函数。