gpt4 book ai didi

c++ - 如何在二进制文件中搜索 "\0"?

转载 作者:行者123 更新时间:2023-11-30 00:48:51 24 4
gpt4 key购买 nike

我有一个 .idx 文件,我想用 C++ 读取这个文件。该文件中的所有项目均以\0 符号分隔。我想得到那个项目列表。我尝试按如下方式实现它:

while (file.read(buffer, sizeof buffer), chars_read = file.gcount()){

string search_term = "\0";
string contentElement = buffer;

string::size_type foundoffset = contentElement.find(search_term);

if (foundoffset != string::npos){
//Do something...
}
//code continue here.
.....
}

但是在C++中,"\0"被认为是null,如果你有C++经验,请指导我如何去做。请注意,此 idx 文件是二进制文件。谢谢!

最佳答案

不要在二进制文件上使用 std::string。如果您使用原始字符数组,请在其中查找,例如使用 std::find

例如:

const char* end = buffer + chars_read;
const char* ptr = std::find(buffer, end, '\0');

if(ptr == end) {
// not found
}
else {
// ptr points to null character
}

关于c++ - 如何在二进制文件中搜索 "\0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30501023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com