1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习

qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习

时间:2022-04-17 15:18:52

相关推荐

qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习

QT平台文件逐行读取和字符串规律输出练习

练习要求

逐行读取指定文件里的字符串,把字符串转换后进行输出,转换要求为十个字符为一组,偶数组(0,2…)为为非数字,奇数组(1,3…)是为数字。非数字用完,则后续全用数字;数字用完,则后续全用非数字。最后把所有行规律结果写入到新文件里。

所用技术

QT按行读取文件

m_FilePath = "C:\\student.txt";

QFile file(m_FilePath);

if(!file.open(QIODevice::ReadOnly | QIODevice::Text))//打开文件

{

qDebug() << "Can't open the file!";

return;

}

QTextStream in(&file); //用文件构造流

line = in.readLine();//读取一行放到字符串里

while(!line.isNull())//字符串有内容

{

line=in.readLine();//循环读取下行

}

判断字符是否为数字或非数字

if(sin[j] > '0' && sin[j] < '9')

{

numpart.append(sin[j]);

if(numpart.length()>=10)

{

slnumpart.append(numpart);

numpart.clear();

}

continue;

}

else if((sin[j]>='a'&&sin[j]<='z')||(sin[j]>='A'&&sin[j]<='Z'))

{

nonnumpart.append(sin[j]);

if (nonnumpart.length()>=10)

{

slnonnumpart.append(nonnumpart);

nonnumpart.clear();

}

continue;

}

支持分组处理使用字符串数组QStringList类

QStringList类提供了一个字符串列表,从QList 继承而来,它提供快速索引为基础的接入以及快速插入和清除,其成员函数用于操作这个字符串列表如append(),insert(), replace(),removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()。本例里用的append()来进行添加。

细节流程

初学者不能把问题模型化,不能切分步骤。如果以前没接触过QT,则对实际上简单的技术也不敢下手,比如按行读取文件,所以会卡在某个点上浪费时间不敢动手,这时候就需要老师引导了,锐英源孙老师通过在线教育也能进行引导,欢迎关注。

这个练习,首先要把文件读取函数写出来;

文件行读取出来以后,再写一个字符串的处理函数,方便读取的字符串的处理:QString procLine(QString sin);

字符串处理函数中,判断字符串中是否为数字,分三类处理:数字部分和非数字部分,然后是尾部的处理。

(1)数字部分的处理,如果数字部分总长度累计大于等于10,大于等于部分放入数字整组中,;

(2)非数字部分处理,如果非数字部分总长度累计大于等于10,大于等于部分放入非数字整组中;

(3)尾部处理,非数字部分剩余先放入,数字部分剩余后放。

这里是尾部处理的部分代码:

for(int j=0;j

{

sreturn+=slnonnumpart[j];

if(j

{

sreturn+=slnumpart[j];

}

}

for(int k=slnonnumpart.size();k

{

sreturn+=slnumpart[k];

}

sreturn+=nonnumpart;

sreturn+=numpart;

return sreturn;

将读取的每一行传入字符串处理函数中,循环处理,显示到文本框,main中调用显示。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。