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中調用顯示。
總結
以上是生活随笔為你收集整理的qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xilinx 7系列FPGA概览
- 下一篇: C++性能优化系列——3D高斯核卷积计算