加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

[Qt] 文本文件读写, 摘自官方文档

发布时间:2020-12-14 02:05:52 所属栏目:Windows 来源:网络整理
导读:Reading Files Directly The following example reads a text file line by line: QFile file( " in.txt " ); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return ; while (! file.atEnd()) { QByteArray line = file.readLine(); process_line

Reading Files Directly

The following example reads a text file line by line:

    QFile file("in.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    while (!file.atEnd()) {
        QByteArray line = file.readLine();
        process_line(line);
    }

The QIODevice::Text flag passed to open() tells Qt to convert Windows-style line terminators ("rn") into C++-style terminators ("n"). By default,QFile assumes binary,i.e. it doesn‘t perform any conversion on the bytes stored in the file.

?

Using Streams to Read Files

The next example uses QTextStream to read a text file line by line:

    QFile file("in.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    QTextStream in(&file);
    while (!in.atEnd()) {
        QString line = in.readLine();
        process_line(line);
    }

QTextStream takes care of converting the 8-bit data stored on disk into a 16-bit Unicode QString. By default,it assumes that the user system‘s local 8-bit encoding is used (e.g.,ISO 8859-1 for most of Europe; see QTextCodec::codecForLocale() for details). This can be changed using setCodec().

To write text,we can use operator<<(),which is overloaded to take a QTextStream on the left and various data types (including QString) on the right:

    QFile file("out.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
        return;

    QTextStream out(&file);
    out << "The magic number is: " << 49 << "n";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读