C++将文本中数据存入二维数组中

文本中数据为
1, 85.75, 35.2, 140.47, 18.74;
6, 13.04, 7.27, 23.8, 1.63;
8, 11.26, 7.64, 18.57, 1.64;
14, 65.86, 31.26, 104.9, 17.1;
17, 15.71, 8.93, 27.65, 2.22;
19, 12.19, 6.61, 20.74, 0.95;
以逗号为一个数,分号为一行
敬请大家帮助
谢谢

#include<iostream>
#include<fstream>
using namespace std;
int main()
{ double A[6][5];
ifstream fin("a.txt");
for(int i=0; i<6; i++) {
for(int j=0; j<5; j++) {
fin>>A[i][j];
fin.get();
}
}
fin.close();
////////输出看看对不对,呵呵
for(int i=0; i<6; i++) {
for(int j=0; j<5; j++) {
cout<<A[i][j]<<(j==4? ';':',');

}
cout<<endl;
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-04
float a[6][5];
for(i=0;i<6;i++) fscanf(fp,"%f,%f,%f,%f,%f;",a[i],a[i]+1,a[i]+2,a[i]+3,a[i]+4);
第2个回答  2009-08-04
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ double A[6][5];
ifstream fin("a.txt");
for(int i=0; i<6; i++) {
for(int j=0; j<5; j++) {
fin>>A[i][j];
fin.get();
}
}
fin.close();
第3个回答  2009-08-04
根据题目要求,如果说文本数据大小随机,我再改改
#include <iostream>
using namespace std;

void GetNum(char* fileName, float arr[6][5])
{
FILE* fp = NULL;
if( (fp = fopen(fileName,"rb")) == NULL )
{
cout<<"文件不存在!"<<endl;
}
else
{
char pTemp[100];
char pTemp2[20];
int line = 0;
int col = 0;
while(fgets(pTemp,100,fp) != NULL)
{
for(int i = 0,j = 0; i < strlen(pTemp); i++)
{
if(pTemp[i] == ',' || pTemp[i] == ';')
{
pTemp2[j] = '\0';
arr[line][col] = atof(pTemp2);
j = 0;
col++;
}
else
{
pTemp2[j++] = pTemp[i];
}
}
line++;
col = 0;
}
}
fclose(fp);
fp = NULL;
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 5; j++)
{
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
}

int main()
{
char fileName[20];
cout<<"请输入文件名:";
cin>>fileName;
float arr[6][5];
GetNum(fileName,arr);
return 0;
}
相似回答