gpt4 book ai didi

c++ - 如何交换文本文件中的行?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:10 24 4
gpt4 key购买 nike

我有一个文本文件;假设文本文件有 10 行。我想在第 3 行和第 6 行之间交换。

我该怎么做?此外,我无法为交换创建任何临时文件。

最佳答案

为了使此解决方案正常工作,这些行不能包含单个空格,因为它将用作分隔符。

const std::string file_name = "data.txt";

// read file into array
std::ifstream ifs{ file_name };
if (!ifs.is_open())
return -1; // or some other error handling
std::vector<std::string> file;
std::copy(std::istream_iterator<std::string>(ifs), std::istream_iterator<std::string>(), std::back_inserter(file));
ifs.close();

// now you can swap
std::swap(file[2], file[5]);

// load new array into file
std::ofstream ofs{ file_name, std::ios_base::trunc };
if (!ofs.is_open())
return -1; // or some other error handling
std::copy(file.begin(), file.end(), std::ostream_iterator<std::string>(ofs, "\n"));

关于c++ - 如何交换文本文件中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029598/

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