获取文本文件有多少行,支持\r,\n,\r\n

使用Qt的QFile读取文件,直接上代码,支持换行符\r, \n, \r\n

static int GetFileRows(const QString &file)
{
    int line = 0;

    QFile fi(file);
    if(!fi.open(QIODevice::ReadOnly))
    {
        return -1;
    }

    bool pre_is_r = false;
    QString ch;
    QTextStream stream(&fi);
    while(!stream.atEnd())
    {
        ch = stream.read(1);
        if(ch == "\n")
        {
            if(!pre_is_r) // \n
                ++line;
            else // \r\n
                pre_is_r = false;
        }
        else if(ch == "\r") //\r
        {
            ++line;
            pre_is_r = true;
        }
        else //other character
        {
            pre_is_r = false;
        }
    }
    fi.close();

    return line + 1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值