用Qt的话还是用QFile读取文件吧,功能比较强大,配套的QString或者IO
Stream的功能同样强大,处理起来会很方便
问题是你描述的太简单了,就是去Qt assistant看看QFile怎么用就可以了
1、HeatUser类
class HeatUser{
public:
HeatUser(){
}
HeatUser(QString name, float flow, float distance, short time){
strcpy(Name, nametoLocal8Bit()data());
Flow = flow;
Distance = distance;
Time = time;
}
~HeatUser(){
}
QString getName(){
return Name;
}
QString getFlow(){
return QString("%1")arg(Flow);
}
QString getDistance(){
return QString("%1")arg(Distance);
}
QString getTime(){
return QString("%1")arg(Time);
}
private:
char Name[30];
float Flow;
float Distance;
short Time;
};
2、对象初始化
QFile file("aatxt");if(fileopen(QIODevice::ReadOnly))
{
QTextStream stream(&file);
while(!streamatEnd())
{
QStringList list = streamreadLine()split(QRegExp("\\s+"));
HeatUser hUser(listat(0), static_cast<QString>(listat(1))toFloat(),
static_cast<QString>(listat(2))toFloat(),
static_cast<QString>(listat(3))toShort());
vecpush_back(hUser);
}
}
3、文件内容
aa 1260 226 99bb 1650 236 100
4、写入Qtablewidget
ui->tableWidget->setRowCount(2); //设置行数为2ui->tableWidget->setColumnCount(4); //设置列数为4
QStringList header;
header << "Name" << "Flow" << "Distance" << "Time";
ui->tableWidget->setHorizontalHeaderLabels(header);
for(int i = 0; i < veccount(); i++)
{
ui->tableWidget->setItem(i,0,new QTableWidgetItem(vec[i]getName()));
ui->tableWidget->setItem(i,1,new QTableWidgetItem(vec[i]getFlow()));
ui->tableWidget->setItem(i,2,new QTableWidgetItem(vec[i]getDistance()));
ui->tableWidget->setItem(i,3,new QTableWidgetItem(vec[i]getTime()));
}
文件夹中,文件名为1、jpg,2、jpg,3、jpg……。在电脑中,是按1-100排序的,但用FileInfo读取的时候,往往会出现以下的情况,读取的列表实际是按1、jpg,10、jpg,11、jpg……,19、jpg,2、jpg,20、jpg。
以上就是关于QT读取文件到数组全部的内容,包括:QT读取文件到数组、QT 读取文件写入Qtablewidget中、qfileinfolist文件大小排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)