小皮球飞呀飞 2018-05-30 06:35 采纳率: 100%
浏览 4167
已采纳

QT 查找文件中字符串并替换的问题

QT控制台程序,如果需要匹配的字符串在首行的话,无法完成替换。麻烦各位帮忙看看。打印出来的debug显示已经完成替换了,但是首行无法写入。其他行就完全没问题。。。。。。QT环境是QT5.11.0.。。。。谢谢

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QTextStream>
#include <QTextCodec>
QString str,str2;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QTextStream cin(stdin, QIODevice::ReadOnly);
    QTextStream cout(stdout, QIODevice::WriteOnly);

    QString strAll;
    QStringList strList;
    QFile readFile("F:/test.txt");
     if(readFile.open((QIODevice::ReadOnly|QIODevice::Text)))
    {
        QTextStream stream(&readFile);
        strAll=stream.readAll();
    }readFile.close();

    QFile writeFile("F:/test.txt");
    if(writeFile.open(QIODevice::WriteOnly|QIODevice::Text))
    {
       QTextStream stream(&writeFile);
       strList=strAll.split("\n");

       cout<<"input string"<<endl;
       cin>>str;

       cout<<"input string to replace"<<endl;
       cin>>str2;

       for(int i=0;i<strList.count();i++)
       {
                if(i==strList.count()-1)
                {
                    //最后一行不需要换行
                    stream<<strList.at(i);
                }
                else
                {
                    stream<<strList.at(i)<<'\n';
                }
               //cout<<strList.at(i)<<endl;

        strList.replaceInStrings(str,str2);
#if 0
           if(strList.at(i).contains(str))
           {

               //QString tempStr=strList.at(i);
               strList.replaceInStrings(str,str2);
               cout<<strList.at(i)<<endl;

               stream<<'\n';

               i++;
           }
#endif
       }
    }
       writeFile.close();
}
  • 写回答

1条回答 默认 最新

  • 枫舞的季节 2018-05-31 01:13
    关注

    strList.replaceInStrings(str,str2); 放到for循环外面就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64