【发布时间】:2012-03-21 07:04:00
【问题描述】:
while (file.good())
{
for (vector <string>::iterator i = v1.begin(); i != v1.end();)
{
getline(file, sTmp);
if (sTmp != *i)
{
v2.push_back(sTmp);
}
++i;
}
}
我已经用当前目录中的文件名填充了 v1,只想插入与 v1 元素不匹配的 txt 文件中的名称(v1 和 v2 是字符串向量)。上面的代码看起来合乎逻辑,但不起作用。我从 v2 中的 txt 文件中获取所有文件,而不是不同的文件。
这有什么问题?
【问题讨论】:
-
@talnicolas 为什么?
==和!=工作得很好。 -
您正在为每个元素
v1执行getline()。如果您想比较成对的line from file和string from vector,您会这样做,但也许您想比较每一行与每个向量元素? -
从 cplusplus.com 作为标准功能来检查文件或其 eof 的完整性。
-
@1000Gbps 然后远离那个站点。它的作者不懂 C++。
标签: c++ string vector compare getline