void BTree::Read(){
QFile file("E:\\QtProject\\Tree\\manager.txt");
QTextCodec *codec=QTextCodec::codecForName("GBK");
if(file.open(QIODevice::ReadWrite))
{qDebug()<<"檔案能打開成功";
int i=0;
while(!file.atEnd()&&i<19)
{
QByteArray line =file.readLine();
QString str(line);
manage[i]=str;
i++;
qDebug()<<"讀到元素"<<i<<manage[i];
}
file.close();
}
qDebug()<<"讀取成功";
}
manage是一個QString[]陣列(不知道能不能這樣用)
這段代碼顯示檔案打開了,為什么控制臺輸出的都是空格
uj5u.com熱心網友回復:
QString陣列的話可以考慮用QStringList(好像也是QList<QString>)代替,至少這樣在Qt里面是比較方便的(反正我沒見過用QString陣列的,用到類似陣列的地方就是QStringList
)
uj5u.com熱心網友回復:
一般我們用QStringList或者QVector<QString>來存盤這種物件。如果你非要用c方式的陣列QString manager[16];這種也請定義成QString *manager[16];在實際使用的時候
QString str = new QString(line);
manage[i]=str;
用完別忘記delete
uj5u.com熱心網友回復:
至于為什么不能直接用c方式的陣列,簡單來說:陣列要求存盤的東西是一個東西(定長)。QString這種實際內容是變長的就算了uj5u.com熱心網友回復:
既然使用QT和C++,那就建議將思路轉變到面向物件上來。如2樓所言,使用 QStringList 即可,不會使用的話,請查閱 幫助手冊。
祝你早日熟練使用 Qt
uj5u.com熱心網友回復:
用QVector<QString>或者QStringList轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/74122.html
標籤:Qt
上一篇:請問利用Qt如何做出如下效果?
下一篇:qt3d 怎么渲染貼圖
