gpt4 book ai didi

c++ - 在cpp中将单词从一个文件复制到另一个文件

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

我试图在 cpp 中将单词从一个文件复制到另一个文件,这是我的代码:

int main()
{

string from, to;

cin >> from >> to;

ifstream ifs(from);

ofstream ofs(to);

set<string> words(istream_iterator<string>(ifs), istream_iterator<string>());
copy(words.begin(), words.end(), ostream_iterator<string>(ofs, "\n"));

return !ifs.eof() || !ofs;
}

这样我得到一个编译错误:

expression must have class type

在调用copy()的那一行

如果我将迭代器的构造更改为以下它会起作用:

set<string> words{ istream_iterator<string>{ ifs }, istream_iterator<string>{} };

我认为在 cpp 中初始化对象时在 () 和 {} 之间进行选择只是一个选择问题,但我想我错了。谁能给我解释一下?

最佳答案

在第一个代码片段中,set<string> words(istream_iterator<string>(ifs), istream_iterator<string>())行被解析为函数声明 words有两个参数:istream_iterator<string> ifs和一个类型为 istream_iterator<string> 的未命名参数并返回 set<string> .这就是它给出编译错误的原因。第二个不能被解析为函数声明,因此它可以正常工作。

关于c++ - 在cpp中将单词从一个文件复制到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483990/

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