正如标题所说,我正在尝试从二进制文件中读取以空字符结尾的字符串。
std::string ObjElement::ReadStringFromStream(std::ifstream &stream) {
std::string result = "";
char ch;
while (stream.get(ch) != '\0') {
result += ch;
}
return result; }
我的空字符是'\0'
但是任何时候我调用它读取到文件末尾的方法
std::ifstream myFile(file, std::ios_base::in | std::ios_base::binary);
myFile.seekg(startByte);
this->name = ObjElement::ReadStringFromStream(myFile);
知道我在这里做错了什么吗?
最佳答案
使用std::getline
:
#include <string> // for std::getline
std::string ObjElement::ReadStringFromStream(std::ifstream &stream) {
std::string s;
std::getline(stream, s, '\0');
return s;
}
关于c++ - 从二进制文件中读取空终止字符串 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25206337/