gpt4 book ai didi

c++ - 如何存储以二进制模式 C++ 读取的文件中的数据

转载 作者:行者123 更新时间:2023-11-30 02:41:02 32 4
gpt4 key购买 nike

您好,我正在尝试以二进制模式-C++ 读取一个文件,例如“sample.txt”,我需要将文件文本(例如“nodeA nodeB”)存储在一个 vector 中。例如:“A A B E A B G”如果这是文本文件中的内容,我想以二进制形式读取它,然后将其存储在某个变量中,然后对其进行一些操作。任何帮助,将不胜感激。到目前为止我得到的是:

int main () {
streampos begin,end;
ifstream myfile ("example.bin", ios::binary);
begin = myfile.tellg();
myfile.seekg (0, ios::end);
end = myfile.tellg();
myfile.close();
cout << "size is: " << (end-begin) << " bytes.\n";
return 0;
}

如何获取文件myfile中的文本部分?

最佳答案

您使用的方法是 ifstream::read(char *,streamsize) .获得文件大小(以字节为单位)后,您可以将数据读入 vector<char>正确大小的(在寻找回文件的开头之后):

streamsize n=end-begin;
vector<char> data((size_t)n);

myfile.seekg(0,ios::beg);
myfile.read(&data[0],n);

vector<char> 的迭代器类型不一定是 char *指针,因此我们将其作为第一个参数传递以读取指向 vector 第一个元素的指针。 std::vector 的元素保证连续布置,因此我们可以放心,写入 &data[0]+k相当于&data[k] , 对于有效的索引 k。

关于c++ - 如何存储以二进制模式 C++ 读取的文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518347/

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