Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.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
打印字符*指针的完整数据? 我是C++中的新手,我想在写入文件之前显示char *指针的数据,但是输出只有5个第一字节。我不知道它出了什么问题。我正在使用android日志打印来显示日志_C++_Leveldb - Fatal编程技术网

打印字符*指针的完整数据? 我是C++中的新手,我想在写入文件之前显示char *指针的数据,但是输出只有5个第一字节。我不知道它出了什么问题。我正在使用android日志打印来显示日志

打印字符*指针的完整数据? 我是C++中的新手,我想在写入文件之前显示char *指针的数据,但是输出只有5个第一字节。我不知道它出了什么问题。我正在使用android日志打印来显示日志,c++,leveldb,C++,Leveldb,这是将数据写入文件的代码: 航海日志显示: WriteUnbuffered filename=/data/user/0/com.abc.helloleveldb/databases/leveldb/000003.log WriteUnbuffered size=37,加密前的数据=��� -> 只有50字节 但是数据写入完整文件,2对数据(test:ok和test1:hello) 如果你有什么建议,请帮助我。谢谢数据处的缓冲区内容看起来是二进制数据,不适合以%s格式传入 我建议逐个迭代每个字

这是将数据写入文件的代码:

航海日志显示:

WriteUnbuffered filename=/data/user/0/com.abc.helloleveldb/databases/leveldb/000003.log

WriteUnbuffered size=37,加密前的数据=��� -> 只有50字节

但是数据写入完整文件,2对数据(test:ok和test1:hello)


如果你有什么建议,请帮助我。谢谢

数据处的缓冲区内容看起来是二进制数据,不适合以
%s
格式传入

我建议逐个迭代每个字符(字节),并记录十六进制值,如下所示:

for(size_t i=0; i<size; ++i) {
    LOGD("WriteUnbuffered data[%zu]=0x%02x", i, (data[i])&0xff);
}

for(size\u t i=0;i
%d
格式说明符不正确,这会导致未定义behaviour@M.M我看不出尺寸有任何问题。嗯,有一个问题,我已经指出了,这将是一个很好的解决办法it@M.M谢谢。我已将%d更改为%zu。
%s”
需要一个以null结尾的字符串。您的数据是否以null结尾?如果不是,您应该避免使用任何依赖于以null结尾的缓冲区的C字符串函数。感谢您的帮助,我尝试打印十六进制,但它只是这样的数字:WriteUnbuffered data[0]=0xad,string=173 WriteUnbuffered data[1]=0x46,string=70写入缓冲数据[2]=0xd4,string=212写入缓冲数据[3]=0x20,string=32写入缓冲数据[4]=0x1e,string=30写入缓冲数据[5]=0x00,string=0写入缓冲数据[6]=0x01,string=1…您知道我是否要加密char*数据吗?@thanhlv值,如0x20,0x1e,是存储在缓冲区中的字节值。如果您知道这些字节值的含义,您应该能够解释输出。不清楚为什么要将缓冲区发送到日志。我也无法回答您是否需要o加密数据。您的问题只是关于如何记录缓冲区的所有字节。