gpt4 book ai didi

c++ - 连接两个文件时如何避免多余的尾随换行符?

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:41 25 4
gpt4 key购买 nike

我想将两个文件合并为一个文件,当我在合并文件的末尾执行此操作时,有一个额外的空行,我该如何删除它?

文件 1 包含:

1  2  3

和 file2 包含:

4  5  6

合并后的文件是这样的

1  2  3
4 5 6
<------cursor is here

这是我的代码:

ifstream read1("1.txt");
ifstream read2("2.txt");

ofstream write ("3.txt");

string line;
string line2;

while ( getline ( read1, line, '\n' ) )
{
if (!line.empty())
write << line << endl;
}

while ( getline ( read2, line2, '\n' ) )
{
if (!line2.empty())
write << line2 << endl;
}

read1.close();
read2.close();
write.close();

最佳答案

使用 streambuf overload for operator<< 我们可以做到:

#include <fstream>

int main()
{
std::ifstream read1("1.txt");
std::ifstream read2("2.txt");
std::ofstream write("3.txt");
write << read1.rdbuf() << '\n' << read2.rdbuf();
}

关于c++ - 连接两个文件时如何避免多余的尾随换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825130/

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