遇到个文件读写的问题,读的时候想直接赋值到数组中,写的时候同样
比如从faceinfo.wzy中读取数据
3 3
aaa bbb ccc
3 2 1
4 3 9
4 9 7
数据格式:第一行:前2个数int型 代表人数和每个人的特征数
第二行:所有人的名字,string型
第三行开始:每个人的特征
注意C++对于string类型的读取:
需要在头文件定义
#include <fstream>
#include <string>
using namespace std;
另外这种问题一般需要动态确定数组大小
程序源码如下
int main()
{
char *filename="faceinfo.wzy";
ifstream myfile(filename);
if (!myfile)
{
return 0;
}
int a;
myfile>>a; //a是人的个数
int b;
myfile>>b; //b是人的特征数目
string *mp=new string[a];//人名数组
int **fea=new int* [a];//
for (int i=0;i<a;i++)
{
myfile>>mp[i];
}
for (i=0;i<a;i++)
{
int *temfe=new int[b];
for (int j=0;j<b;j++)
{
myfile>>temfe[j];
}
fea[i]=temfe;
}
cout<<a<<":"<<mp[0]<<" "<<(fea[0])[0]<<(fea[0])[1]<<(fea[0])[2]<<endl;
return 0;
}
最后输出 3:aaa 321