C++中利用vector来处理文本中保存的数据
来源:互联网 发布:桃源网络硬盘5.8 破解 编辑:程序博客网 时间:2024/04/27 00:07
最近在尝试利用C++做信号处理方面的仿真,于是就涉及到了大量数据的存储。由于在读取数据的时候,并不知道数据的长度,这时候,vector就很好用了,因为vector容器不用知道数组的长度。
首先利用matlab生成一个很简单的整型数组,或者直接复制都行。
代码(Matlab)
- clear,clc;
- a=[1 2 3 4 5 6 7 8 9];
- fid=fopen('D:\\\workspa\\cpp\\fileIOTest\\dataIn.txt','wt');
- fprintf(fid,'%g ',a);
- fclose(fid);
生成的文本如下
之后,将文本中的数据读入到文件流中,之后代码如下:
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- #include <vector>
- #include <stdlib.h>
- using std::string;
- using std::vector;
- using namespace std;
- //用来测试文件的读写操作,输入输出文件均为保存在程序根目录下的txt文件
- int main()
- {
- ifstream infile; //infile是一个文件流,因此其实还是对流进行的操作
- ofstream outfile;//outfile也是一个文件流,用来操作输出文件
- infile.open("D:\\\workspace\\cpp\\fileIOTest\\dataIn.txt");
- vector<int> data_vector; //用来保存文本中数据的向量
- vector<int> out_vector; //用来保存输出结果的向量
- vector<int> temp_vector; //缓存向量
- int temp;
- string message;
- if(!infile) //判断是否存在ifstream infile
- {
- cout<<"读入文件不存在"<<endl;
- }
- if (infile.is_open()) //判断文件流是否处于打开状态
- {
- while (infile.good()&&!infile.eof())
- {
- infile>>temp;
- data_vector.push_back(temp); //将数据读入到data_vector
- }
- }
- infile.close();
- for (vector<int>::size_type i=0;i!=(data_vector.size()-1);i++)
- {
- cout<<"第"<<i+1<<"项的值是:"<<data_vector[i]<<endl;
- }
- temp_vector=data_vector; //避免修改到了data_vector
- cout<<"*************************************************************"<<endl;
- cout<<"文件的写操作"<<endl;
- //对文本中的数据进行操作
- for (vector<int>::size_type i=0;i!=(temp_vector.size()-1);++i)
- {
- temp_vector[i]=temp_vector[i]*temp_vector[i]+1; //对文本中数据进行简单处理,即:y=x.^2+1
- }
- //计算结果传递给out_vector
- out_vector=temp_vector;
- for (vector<int>::size_type i=0;i!=(out_vector.size()-1);i++)
- {
- cout<<"第"<<i+1<<"项的值是:"<<out_vector[i]<<endl;
- }
- outfile.open("D:\\\workspace\\cpp\\fileIOTest\\dataOut.txt"); //打开输出文件
- for (vector<int>::iterator iter=out_vector.begin();iter!=(out_vector.end()-1);++iter)
- {
- char tmp[5];
- itoa(*iter,tmp,10); //将10进制的数转换成string类型
- message.append(tmp);
- message.append(" ");
- }
- outfile<<message;
- outfile.close(); //关闭输出文件
- }
最终的到的结果如下:
可以看出,输出文本中数据是输入文本中数据的x.^2+1,这样对于以后的数字信号处理仿真,比如FFT,比如自相关,会有很大的借鉴意义。
转自:http://blog.csdn.net/isbnhao/article/details/8052409
- C++中利用vector来处理文本中保存的数据
- C++中利用vector来处理文本中保存的数据
- C++中利用vector来处理文本中保存的数据
- C语言中保存数据的万能函数
- iphone中保存数据的一些方法
- Android中保存数据常用的方法
- Android中保存数据常用的方法
- Android中保存数据常用的方法
- 查看SharedPreferences中保存的数据
- 获取对象中保存的数据
- eclipse中保存数据到数据库中乱码简单处理方式
- Vector中保存和删除指针数据类型时的tips
- 如何在 jsp 上输出数据库中保存的文本
- PHP中在数据库中保存Checkbox数据(1)
- IE中保存textarea中数据为本地文件
- ListView中EditText在横竖屏切换中保存数据
- java interface 中保存数据
- 关于activity中保存数据
- 第一章 计算机系统漫游 shell vs ui ,where we are?
- 国外创客眼中的深圳:整个城市就是一家超大型硬件工作坊
- android AsyncTask的用法
- web.config connectionStrings 数据库连接字符串的解释
- 转载_用google mock使用方法
- C++中利用vector来处理文本中保存的数据
- [window store 8程序开发]获取设备屏幕分辨率
- SAP-ABAP程序发送邮件
- Ubuntu 安装SVN服务器端
- CSDN问答频道4月声望排行榜出炉,既5月奖品预告
- prototype.js部分源码摘录
- 欧洲最大的开源软件盛会网站
- oracle系统表查询
- SAP 发送邮件例子(内部)