VC中怎么读取文件内容到结构体?

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:24:31
结构体的定义是:
struct list_type
{
CString Num;
CString Name;
CString Huaxue;
CString Math;
CString Wuli;
CString Yuwen;
CString English;
CString Sex;
CString sum;
CString pingjun;
CString paiming;
} list[100];
我写文件的代码是:
CFile file("student1.dat",CFile::modeCreate | CFile::modeWrite);
for(i=0;i<num;i++)
{
file.Write(list[i].Num+" ",strlen(list[i].Num+" "));
file.Write(list[i].Name+" ",strlen(list[i].Name+" "));
file.Write(list[i].Sex+" ",strlen(list[i].Sex+" "));
file.Write(list[i].Yuwen+" ",strlen(list[i].Yuwen+" "));
file.Write(list[i].Math+" ",strlen(list[i].Math+" "));
file.Write(list[i].English+" ",strlen(list[i].English+" "));
file.Write(list[i].Wuli+" ",strlen(list[i].Wuli+" "))

CFile file("student1.dat",CFile::modeRead); long dw; dw=file.GetLength(); char* buf=new char[dw]; file.Read(buf,dw); CString str; int i,j; CString linestr[1024]; CString line[3]; CString linerow[3][11]; str=CString(buf); linestr[0]=str.Left(str.Find("\r\n",0)); for(i=1;i<3;i ) { linestr[i]=str.Left(str.Find("\r\n",linestr[i-1].GetLength() 2)); } line[0]=linestr[0]; for(i=1;i<3;i ) { line[i]=CString(linestr[i])-linestr[i-1]; } for(i=0;i<3;i ) { linerow[i][0]=line[i].Left(line[i].Find('\b',0)); for(j=1;j<11;j ) { linerow[i][j]=line[i].Left(line[i].Find('\b',line[i].GetLength() 1)); } list[i].Num=linerow[i][0]; list[i].Name=CString(linerow[i][1])-linerow[i][0]; list[i].Sex=CString(linerow[i][2])-linerow[i][1]; list[i].Yuwen=CString(linerow[i][3])-linerow[i][2]; list[i].Math=CString(linerow[i][4])-linerow[i][3]; list[i].English=CString(linerow[i][5])-linerow[i][4]; list[i].Wuli=CString(l