将QVector写入Qt中的文本文件
Writing a QVector to a text file in Qt
我正在尝试编写一个程序,该程序读取包含几行512个元素的文本文件。这些数字用制表符分隔,文件的第一行包含有关文件本身的一般信息。以下是它的样子:
512测量日期:12月4日。六月18:35:44 2014评论:无
2.4155 1.60983 1.08339 0 2.13321 0 0.848402 0 0.747692 0 0.146487 0 1.98062 0 0.846876 0 1.87991 0.117494 0 0 1.6907 0 0.0671397 0.256352 1.33974 1.4313 1.17494 0 1.83566 0 2.54826 0 0 0 0 1.80819 0 0 0 4.78523 0 1.99283 0 2.63676 0 2.19272 0 0.962844 0.256352 0.762951 0.581369 00 0.689708 1.38552 2.38193 1.11391 3.22118 0.712596 0 0.508125 0 0.842298 0 0.794995 0.967422 0.820935 0.0534066 2.67338 0
等等
512列中的每一列表示单独的数据流,并且随时间对行进行采样。该程序计算数据的积分,从而得出一个包含512个元素的向量,每个元素都是相应列中所有数据的总和。
积分部分运行良好,我可以使用qDebug打印矢量的输出,但当我尝试将矢量写入文本文件时,我会遇到错误。
这是我正在使用的代码:
void MainWindow::on_pushButton_clicked()
QVector<double> SingleLineData;
SingleLineData.resize(512);
QString test;
QString inputfile = QFileDialog::getOpenFileName(
this,
tr("Open File"),
"/Users",
"All files (*.*)"
);
if(inputfile != ""){
QFile file(inputfile);
if(!file.open(QFile::ReadOnly)){
}
QTextStream in(&file);
double buffer;
while(!file.atEnd()){
in.readLine();
for(int i=0; i<512; i++){
in >> buffer;
SingleLineData[i]+=buffer;
}
}
}
qDebug() << SingleLineData;
//*************文件输出***********************************
QString filename = "/Users/Mitch/Desktop/integral.txt";
QFile fileout(filename);
if (fileout.open(QFile::ReadWrite | QFile::Text)){
}
QTextStream out(&fileout);
out << SingleLineData;
fileout.close();
}
而错误是接收说:
错误:二进制表达式("QTextStream"answers"QVector")的操作数无效和候选函数不可行:第一个参数没有从"QVector"到"const void*"的已知转换;用&QTextStream;运算符<lt;(const void*ptr);
如有任何帮助,我们将不胜感激!:)
这是迭代器方法。QTextStream的运算符没有重载以接受向量。然而,它可以接受替身。
QString filename = "/Users/Mitch/Desktop/integral.txt";
QFile fileout(filename);
if (fileout.open(QFile::ReadWrite | QFile::Text)){
QTextStream out(&fileout);
for (Qvector<double>::iterator iter = SingleLineData.begin(); iter != SingleLineData.end(); iter++){
out << *iter;
}
fileout.close();
}
正如错误消息所说,没有QTextStream
重载需要QVector<double>
,但有double
。因此,只需迭代元素并单独对其进行处理。
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入