C ++ char缓冲区指针错误

时间:2015-08-03 12:21:54

标签: c++ pointers char buffer

我正在使用一个函数来读取假脱机文件并使用输出设置缓冲区。 该函数返回OK状态并正确设置readBytes。它还通知读取操作已到达文件末尾。

char* splFileContent = new char[3000];
ULONG readBytes;
int z = cwbOBJ_ReadSplF(splFile, splFileContent, 500, &readBytes, 0);
//z value is REACHED END OF FILE or OK if read but didn't reach the end of the file.

当尝试将char缓冲区转换为字符串时出现问题,我将“4”作为字符串值... enter image description here

我将char缓冲区转换为字符串:

stringstream s;
s << splFileContent;
string bufferContent = s.str();

我做错了什么?

1 个答案:

答案 0 :(得分:2)

看起来splFileContent是二进制内容而不是可打印的字符。

文件的开头可能包含某种类型的BOM,例如unicode指标。如果是,则应先读取BOM,然后读取文件的其余部分。

注意:除非此处的文件读取功能添加NULL,否则请务必附加一个。