qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习
QT平臺(tái)文件逐行讀取和字符串規(guī)律輸出練習(xí)
練習(xí)要求
逐行讀取指定文件里的字符串,把字符串轉(zhuǎn)換后進(jìn)行輸出,轉(zhuǎn)換要求為十個(gè)字符為一組,偶數(shù)組(0,2…)為為非數(shù)字,奇數(shù)組(1,3…)是為數(shù)字。非數(shù)字用完,則后續(xù)全用數(shù)字;數(shù)字用完,則后續(xù)全用非數(shù)字。最后把所有行規(guī)律結(jié)果寫入到新文件里。
所用技術(shù)
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);? //用文件構(gòu)造流
line = in.readLine();//讀取一行放到字符串里
while(!line.isNull())//字符串有內(nèi)容
{
line=in.readLine();//循環(huán)讀取下行
}
判斷字符是否為數(shù)字或非數(shù)字
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;
}
支持分組處理使用字符串?dāng)?shù)組QStringList類
QStringList類提供了一個(gè)字符串列表,從QList 繼承而來,它提供快速索引為基礎(chǔ)的接入以及快速插入和清除,其成員函數(shù)用于操作這個(gè)字符串列表如append(),insert(), replace(),removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()。本例里用的append()來進(jìn)行添加。
細(xì)節(jié)流程
初學(xué)者不能把問題模型化,不能切分步驟。如果以前沒接觸過QT,則對(duì)實(shí)際上簡(jiǎn)單的技術(shù)也不敢下手,比如按行讀取文件,所以會(huì)卡在某個(gè)點(diǎn)上浪費(fèi)時(shí)間不敢動(dòng)手,這時(shí)候就需要老師引導(dǎo)了,銳英源孫老師通過在線教育也能進(jìn)行引導(dǎo),歡迎關(guān)注。
這個(gè)練習(xí),首先要把文件讀取函數(shù)寫出來;
文件行讀取出來以后,再寫一個(gè)字符串的處理函數(shù),方便讀取的字符串的處理:QString procLine(QString sin);
字符串處理函數(shù)中,判斷字符串中是否為數(shù)字,分三類處理:數(shù)字部分和非數(shù)字部分,然后是尾部的處理。
(1)數(shù)字部分的處理,如果數(shù)字部分總長(zhǎng)度累計(jì)大于等于10,大于等于部分放入數(shù)字整組中,;
(2)非數(shù)字部分處理,如果非數(shù)字部分總長(zhǎng)度累計(jì)大于等于10,大于等于部分放入非數(shù)字整組中;
(3)尾部處理,非數(shù)字部分剩余先放入,數(shù)字部分剩余后放。
這里是尾部處理的部分代碼:
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;
將讀取的每一行傳入字符串處理函數(shù)中,循環(huán)處理,顯示到文本框,main中調(diào)用顯示。
總結(jié)
以上是生活随笔為你收集整理的qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xilinx 7系列FPGA概览
- 下一篇: 哪些日本人看来很普通的日文词汇,在我们眼