gpt4 book ai didi

c++ - 如何从 fstream 中准确读取 128 个字节到字符串对象中?

转载 作者:可可西里 更新时间:2023-11-01 17:59:01 24 4
gpt4 key购买 nike

<分区>

如何从 fstream 中准确读取 128 个字节到字符串对象中?

我写了一些代码来读取文件的前 128 个字节并打印它,然后读取文件的最后 128 个字节并打印它。最后一部分有效,因为您可以轻松地迭代到 EOF,但是我如何从前面准确地获取 128 个字节?下面的代码不起作用,因为您不能将 128 添加到 ifstream 迭代器,它不可索引,只能递增(看起来)。

当然我可以创建一个迭代器并*++它 128 次,但必须有一个简单的单行方法来完成它,对吧?

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char **argv)
{
std::ifstream ifs ("input.txt",std::ifstream::in | std::ifstream::binary);

if (ifs.good())
{
// read first 128 bytes into a string
ifs.seekg(0,std::ifstream::beg);
std::string first128((std::istreambuf_iterator<char>(ifs)),
(std::istreambuf_iterator<char>(ifs))+128);

std::cout << first128 << std::endl;

// read last 128 bytes into a string
ifs.seekg(-128,std::ifstream::end);
std::string last128((std::istreambuf_iterator<char>(ifs)),
std::istreambuf_iterator<char>());

std::cout << last128 << std::endl;

return 0;
}

return 1;
}

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