我正在使用一个函数来读取假脱机文件并使用输出设置缓冲区。
该函数返回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”作为字符串值...
我将char缓冲区转换为字符串:
stringstream s;
s << splFileContent;
string bufferContent = s.str();
我做错了什么?
答案 0 :(得分:2)
看起来splFileContent
是二进制内容而不是可打印的字符。
文件的开头可能包含某种类型的BOM,例如unicode指标。如果是,则应先读取BOM,然后读取文件的其余部分。
注意:除非此处的文件读取功能添加NULL
,否则请务必附加一个。