【发布时间】: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