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

小皮球飞呀飞 2018-05-30 02:44:00
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();
}
...全文
1808 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39160098 2018-08-01
  • 打赏
  • 举报
回复
replaceInStrings这个东西是从哪里来的啊,为什么我在文档里面没有找到。。
赵4老师 2018-05-30
  • 打赏
  • 举报
回复
参考Linux命令sed或awk的源代码相关片断?

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧