gpt4 book ai didi

C++ 使用迭代器复制文本文件

转载 作者:太空狗 更新时间:2023-10-29 20:15:39 24 4
gpt4 key购买 nike

我刚刚找到了一种将带有迭代器的文件复制到另一个文件的方法:

ifstream ifile("file1.txt");
ofstream ofile("file2.txt");
copy(istream_iterator<string>(ifile),
istream_iterator<string>(),
ostream_iterator<string>(ofile, " "));

它有效,但不幸的是,“file1.txt”中的所有文本在“file2.txt”中只有一行,但最初在“file1.txt”中有很多行。

我试图在迭代器循环之间更改字符串:

copy(istream_iterator<string>(ifile),
istream_iterator<string>(),
ostream_iterator<string>(ofile, "\n"));

但“file2.txt”的结果更糟 - 每个单词都在不同的行中。

我的问题:有什么方法可以用迭代器复制文件但不会丢失任何信息,还是我应该用 getline() 来做?

最佳答案

istream_iterator<T> iter(stream)将使用格式化输入函数,因此 ++iter有点等同于:

T t;
stream >> t;

对于 string objects 这意味着丢弃任何前导空格并只读取直到下一个空格字符。

如果您想要无格式操作,请使用 istreambuf_iterator<char> (如评论中所述)。

关于C++ 使用迭代器复制文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270690/

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