我有一个带有下一行的字符串 (ifstream):
foo
foo+..
foo
而且,我想知道如何获取有符号 + 的行并删除剩余的行:
foo+..
为了将流转换为字符串,我使用:
string stream((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
最佳答案
这个替代解决方案怎么样:
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool HasNoPlus(const string &value)
{
return value.find('+') == string::npos;
}
int main(int argc, char* argv[])
{
ifstream ifs("d:\\temp\\test.txt");
vector<string> out;
remove_copy_if(istream_iterator<string>(ifs),
istream_iterator<string>(),
back_inserter(out),
HasNoPlus);
return 0;
}
关于c++ - 如何使用条件删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8724306/