c++ - Qt从文件中删除一行

标签 c++ qt file-io

我正在使用 QTextStream 读取 QFile。

QFile file("example.txt");
QTextStream in(&file);
QString line = in.readLine();
while (!line.isNull()) {
 if(line.contains("DELETE"))
 {
   // delete line
 }
 line = in.readLine();
}

有没有办法删除一行?

最佳答案

您可以打开文件、读取内容、修改内容,然后将它们写回到文件中。这是执行此操作的一种方法:

QFile f("myfile.txt");
if(f.open(QIODevice::ReadWrite | QIODevice::Text))
{
    QString s;
    QTextStream t(&f);
    while(!t.atEnd())
    {
        QString line = t.readLine();
        if(!line.contains("DELETE"))
            s.append(line + "\n");
    }
    f.resize(0);
    t << s;
    f.close();
}

关于c++ - Qt从文件中删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631350/

相关文章:

c++ - opengl渲染半个圆柱体

c++ - 在 Qt 中声明 const 并从 2 个不同的类访问

c++ - QSqlDatabasePrivate::addDatabase:重复的连接名称 'qt_sql_default_connection'

c - 在 ENOSPC 之后写入描述符是否安全

file-io - Windows 7 上的 RDP 使用什么协议(protocol)通过剪贴板复制文件?

c++ - 使用 boost::mpl::vector 创建可变参数模板?

c++ - 如何在运行时检查 void* 是否为 IUnknown*?

c++ - 在具有父 ID 的一般树中找到最低公共(public)祖先

javascript - 获取 QML LISTMODEL 中给定索引的值

file-io - 在单行逗号分隔文件中求和值