文件读写和保存
1.获取文件路径及名字
#include <QFileDialog>
void MainWindow::on_pushButton_clicked()
{
QString dialog[3],name[4];
QStringList split[3];
QFileDialog add_file_dialog;
add_file_dialog.setFileMode(QFileDialog::ExistingFiles);
QStringList filename=add_file_dialog.getOpenFileNames(
this, tr("open txt"),".", tr("select(*.txt)"));
int i=0;
for(auto temp:filename){
dialog[i]=temp;
split[i] = dialog[i].split("/");
name[i] = split[i].last();
i++;
}
name[3] = QString("%1,%2,%3").arg(name[0]).arg(name[1]).arg(name[2]);
ui->label->setText(name[3]);
}
2.生成唯一的文件名
QString saveName;//保存名字
QString savePath;
QString filePath;//存储保存路径
QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
QString str = time.toString("mm:ss-yyyyMMdd"); //设置显示格式
filePath = QFileDialog::getExistingDirectory(this,"");//获取文件夹路径
if(!filePath.isEmpty())
{
saveName="savename";
savePath=QString("%1/%2-%3.txt").arg(filePath).arg(saveName).arg(str);
const std::string save = savePath.toStdString();
//save api or write api
}
3.写入
.csv文件
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream oFile;
oFile.open("test.csv",ios::out|ios::trunc);
oFile<<"属性1"<<","<<"属性2"<<","<<"结果1"<<","<<"结果2"<<endl;
oFile<<"010101"<<","<<"1 2 3"<<","<<"32.2 112.3;23.12 23.22;23.14 23.45"<<","<<"1"<<endl;
oFile.close();
}
.xls文件
QFile data("d:/test.xls");
if(!data.open(QFile::WriteOnly | QFile::Truncate))
{
return false;
}
QTextStream out(&data);
QString tt1=QString::fromLocal8Bit("外国");
QString tt2=QString::fromLocal8Bit("人文关怀");
out<<tt1<<"\t"<<tt2<<"\t"<<"\n"; //每个单元格以\t分隔,每行以\n分隔
out<<"25\t"<<"26\t";
data.close();