为了账号安全,请及时绑定邮箱和手机立即绑定

如下所示,请问该怎样将一个在txt里的2维数组提取进C++程序?

如下所示,请问该怎样将一个在txt里的2维数组提取进C++程序?

C++
繁星coding 2022-12-14 22:18:48
比如一个10X10的数组,double的,提取到a[10][10]中。我之后的运算要用到这个数组,所以不能只是cout出来,a[10][10]一定要等于那个数组。
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

假设二维数组以行优先的方式存放在外部文件中。 

#include <fstream> 
#include <iostream> 
using namespace std;

const int s = 10; //数组为 10X10
int myarray[s][s];//定义二维数组

void main() 

ifstream inobj("array.txt");
if (!inobj) 

cout << "file open failed.\n"; 
exit(0); 


for (int i = 0; i < s; ++i) 

if (inobj.eof()) 
break;
for (int j = 0; j < s; ++j) 
{  
inobj >> myarray[i][j]; 


cout << endl; 
inobj.close(); 
//现在,二维数组 myarray 已经用文件初始化了,每一个元素都具有有效值

cout<<"the array:\n";
for (int m = 0; m < s; ++m) 

for (int n = 0; n < s; ++n) 

cout<<myarray[m][n]<<"\t";
}
cout<<"\n";

cout<<"\n";
}


查看完整回答
反对 回复 2022-12-18
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

c语言可以存入以逗号隔开的数据,c++我只知道可以存入以空格隔开的数据,你把数据用空格隔开才可以用下面的程序编译。 
#include<fstream> 
#include<iostream> 
using namespace std; 
struct list 

int num; 
float x_coor; 
float y_coor; 
float z_coor; 
}; 
int main() 

int n = 0,i=0,count=0; 
list a[10]; 
ifstream fin("hello.txt"); 
if(!fin) 

cout<<"open failed!"<<endl; 
exit(1); 

while(fin>>a[i].num>>a[i].x_coor>>a[i].y_coor>>a[i].z_coor) 


//cout<<a[i].num<<" "<<a[i].x_coor<<" "<<a[i].y_coor<<" "<<a[i].z_coor<<endl; 
i++; 
count++; 

fin.close(); 
for(i=0;i<count;i++) 
cout<<a[i].num<<" "<<a[i].x_coor<<" "<<a[i].y_coor<<" "<<a[i].z_coor<<endl; 

return 0; 
}

 


查看完整回答
反对 回复 2022-12-18
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

文件中的数字以空格分开。
#include <fstream>
#include <iostream>
#include <string>

#define N 10
using namespace std;

int main()
{
ifstream in;
int i, j, a[N][N];
in.open("data.txt");

if (!in)
{
cout << "打开文件失败!" << endl;
return -1;
}

for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
{
if (in.eof())
goto out;
in >> a[i][j];
cout << a[i][j] << '\t';

}
}

out:
cout << endl;
in.close();
return 0;
}


查看完整回答
反对 回复 2022-12-18
  • 3 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信