如何阅读文件并保存特定的字符串?

时间:2017-02-15 10:22:31

标签: c++ qt file io qt-creator

我需要读取一个文件,这是一个使用QT Framework的.asc文档。

我需要检查文件中的特定字符串,例如"(Name)"。 特定字符串后面的数字必须保存在另一个.txt文件中。

所以我尝试使用与getline()语句连接的for循环,而if语句应该检查是否已找到预定义的String。 如果找到String,我使用字符串变量.assign()方法将整个匹配行输入到另一个字符串。 但遗憾的是它仍然没有用,也许是合乎逻辑的失败,所以我请求你的帮助!

std::string line;
std::string search = "(Name)";
std::string content;
std::ifstream ifs("C:/PROG/EMS/LD1/analyse_led");
for(unsigned int curLine = 0; std::getline(ifs, line); curLine++) {
    if (line.find(search) != std::string::npos) {
        content.assign( (std::istreambuf_iterator<char>(line) ),
                        (std::istreambuf_iterator<char>()    ) );
    }
}

当然我已经实现了上面所有相关的包含文件,感谢您的帮助! 如果您需要更多信息,请在评论中告诉我。

1 个答案:

答案 0 :(得分:0)

contentline都是std::strings,只是做

content = line;

content = std::move(line);

如果您之后不需要对line执行任何其他操作。 (此后line将为空)。

我不确定您要使用istreambuf_iterator尝试实现的目标,但我确定它无法正常工作......