C++如何从TXT文件中一行一行的读取数据并且保存到数组中
C++怎么从TXT文件中一行一行的读取数据并且保存到数组中
Data.txt 内包含的数据格式为:
(12.03,515.04,117.9,52.79,13.58)
(18.03,415.04,217.9,42.79,23.58)
(11.03,315.04,317.9,32.79,33.58)
(1.03,215.04,417.9,22.79,43.58)
(32.03,115.04,517.9,12.79,53.58)
.
.
.
.
数据格式是固定的就是括号里面5个float,具体有多少行不固定
怎么从这个txt文件中一行一行的读取,并将数据保存到数组中 比如: char cStr[5];
cStr[0] =(12.03,515.04,117.9,52.79,13.58);
cStr[1] =(18.03,415.04,217.9,42.79,23.58);
cStr[2] = (11.03,315.04,317.9,32.79,33.58);
cStr[3] =(1.03,215.04,417.9,22.79,43.58);
cStr[4] =(32.03,115.04,517.9,12.79,53.58);
求大神帮忙指导下,求详细点的C++代码,小弟万分感谢!!!!
------解决方案--------------------
干这种活,C更擅长。
没实际编译链接调试,不保证对,仅供参考:
------解决方案--------------------
Data.txt 内包含的数据格式为:
(12.03,515.04,117.9,52.79,13.58)
(18.03,415.04,217.9,42.79,23.58)
(11.03,315.04,317.9,32.79,33.58)
(1.03,215.04,417.9,22.79,43.58)
(32.03,115.04,517.9,12.79,53.58)
.
.
.
.
数据格式是固定的就是括号里面5个float,具体有多少行不固定
怎么从这个txt文件中一行一行的读取,并将数据保存到数组中 比如: char cStr[5];
cStr[0] =(12.03,515.04,117.9,52.79,13.58);
cStr[1] =(18.03,415.04,217.9,42.79,23.58);
cStr[2] = (11.03,315.04,317.9,32.79,33.58);
cStr[3] =(1.03,215.04,417.9,22.79,43.58);
cStr[4] =(32.03,115.04,517.9,12.79,53.58);
求大神帮忙指导下,求详细点的C++代码,小弟万分感谢!!!!
------解决方案--------------------
干这种活,C更擅长。
没实际编译链接调试,不保证对,仅供参考:
#include <stdio.h>
#define MAXDATA 1000
double D[MAXDATA][5];
char ln[80];
FILE *f;
int i,n;
int main() {
f=fopen("Data.txt","r");
if (NULL==f) {
printf("Can not open file Data.txt!\n");
return 1;
}
i=0;
while (1) {
if (NULL==fgets(ln,80,f)) break;
if (5==sscanf(ln,"(%lf,%lf,%lf,%lf,%lf",&D[i][0],&D[i][1],&D[i][2],&D[i][3],&D[i][4])
------解决方案--------------------
5==sscanf(ln,"(%lf,%lf,%lf,%lf,%lf",&D[i][0],&D[i][1],&D[i][2],&D[i][3],&D[i][4])) {
} else {
printf("Ignore format error at line %d:%s",i+1,ln);
}
i++;
if (i>=MAXDATA) {
printf("Too many data(>%d lines), ignore it.\n",MAXDATA);
break;
}
}
fclose(f);
n=i;
for (i=0;i<n;i++) {
printf("%04d (%5.2lf,%6.2lf,%5.1lf,%5.2lf,%5.2lf)\n",i+1,D[i][0],D[i][1],D[i][2],D[i][3],D[i][4]);
}
return 0;
}
------解决方案--------------------
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <vector>
using namespace std;
vector<vector<double> > buffer;
vector<vector<double> >::iterator i;
vector<double>::iterator j;
int main()
{
ifstream file("Data.txt");
double tmp_d;
char tmp_c;
string tmp;
stringstream ss;
while (file >> tmp ) {
ss<<tmp;
vector<double> v;
for(int i=0;i<5;++i)
{
ss>>tmp_c>>tmp_d;
v.push_back(tmp_d);
}
ss.get();
buffer.push_back(v);
}
for(i=buffer.begin();i!=buffer.end();++i)
{
for(j=i->begin();j!=i->end();++j)
{
cout<<setfill('0')<<setw(5)<<*j<<"\t";
}
cout<<endl;
}
return 0;
}