求助,VC中读取文件的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 22:04:50
文件:
J=1 S=12 A=wo3
J=0 S=24 A=men0
问题描述:当结构体中只有J S 两个变量时,程序结果正确,当读去A时,总是出错,实在是不知道原因,还请前辈指教。
程序如下:(VC++6.0上运行)
struct LAttice
{ int J;
int S;
string A;
};
LAttice Time[2];
CFile SourceFile("lattice.txt",CFile::modeRead );//数据文件
CString SourceData;//定义一临时变量保存一条记录
CArchive ar(&SourceFile,CArchive::load);
int i=0;
while(NULL!=ar.ReadString(SourceData))//循环读取文件,直到文件结束
{
SourceData=SourceData.Right(SourceData.GetLength()- SourceData.Find("J=")-2);//将"="以及前面的字符删除。
CString j= SourceData.Left(SourceData.Find("S"));
Time[i].J=atoi(j);
SourceData=SourceData.Right(SourceData.GetLength()-SourceData.Find("S=")-2);
CString s=SourceData.Left(SourceData.Find("a"));
Time[i].S=atoi(s);
SourceData=SourceData.Right(Sour

SourceData=SourceData.Right(SourceData.GetLength()- SourceData.Find("J=")-2);
// sourcedata="1 S=12 A=wo3"
SourceData=SourceData.Right(SourceData.GetLength()-SourceData.Find("S=")-2);
//sourcedata= "12 A=wo3"

SourceData=SourceData.Right(SourceData.GetLength()-SourceData.Find("a=")-2);
//sourcedata= "2 A=wo3"

看看你的getbuffer(6) 显然是小了。。至少是7 但是改成GetBuffer(7)你的结果也不对

删掉字符不是用right