【问题标题】:How to read a File and save specific occuring strings?如何读取文件并保存特定出现的字符串?
【发布时间】:2026-01-08 08:40:01
【问题描述】:

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

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

所以我尝试使用与 getline() 语句连接的 for 循环,而 if 语句应该检查是否已经找到了预定义的字符串。 如果找到字符串,我将使用字符串变量.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>()    ) );
    }
}

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

【问题讨论】:

  • 我没有看到任何 Qt 类或代码!?如果您已经使用 Qt,使用 QFile 和 QString 可能会更容易。
  • 感谢您的帮助。 @BoBTFish 您的解决方案有效。
  • @Jonas 因为它对你有用,所以我将评论移至答案。

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


【解决方案1】:

contentline都是std::strings,就这样

content = line;

content = std::move(line);

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

我不确定你想用istreambuf_iterator 实现什么,但我确定它不会起作用...

【讨论】:

    最近更新 更多