C++中保存数据到.txt文档的三种方法
#include <QtCore/QCoreApplication>
#include
#include
#include <stdio.h>
#include
//头文件包括Qvector、fstream、QFile
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector<int> x = { 1, 2, 3, 4, 5, 6, 7, 8 };
QVector<double> y1 = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 };
QVector<double> y2 = { 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 };
//str = QString::number(x[i]);
//for (int j = 0; j < xxx.size(); ++j) {
// str += "\t" + QString::number(xxx[j][i]);
//}
//方法1:利用Qt中的QFiile
QFile file("./data.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text);
for (int i = 0; i < x.size(); ++i) {
QString str;
str = QString::number(x[i]) + "\t" + QString::number(y1[i]) + "\t" + QString::number(y2[i]) + "\n";
file.write(str.toUtf8());
}
file.close();
//方法2:利用C语言
FILE *fp = fopen("./data_c.txt", “wt”);
for (int i = 0; i < x.size(); ++i) {
char buf[512];
sprintf(buf, "%d\t%1.1lf\t%1.1lf\n", x[i], y1[i], y2[i]);
int len = strlen(buf);
fwrite(buf, sizeof(char), len, fp);
}
fclose(fp);
//方法3.利用数据流
ofstream ofs("./data_cpp.txt", ios_base::out);
for (int i = 0; i < x.size(); ++i) {
ofs << x[i] << "\t";
ofs << y1[i] << "\t";
ofs << y2[i] << endl;
}
ofs.close();
return a.exec();
}