荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: franky (斌), 信区: Program
标  题: Re: 再问一次关于读入数据的问题
发信站: 荔园晨风BBS站 (Sun Apr 16 18:32:25 2006), 站内

注意你的成员是串 string, 她的实现比较复杂的,我不知道直接用fstream
写是否会有问题。
写的时候还是用我刚刚说的方式写吧,现在用 fstream 把她读出来。

std::fstream  stFstrTmp("filename");
if( stFstrTmp.fail() ) //如果文件没有打开
{
   std::cout<<"open file failed"<<std::endl;
   exit(1);
}
std::vector<A> vstATmp;
while( stFstrTmp.eof() )
{
     char szTmp[256];  //用来保存第一个成员变量,临时用的
     char szTmp2[1024]; //保存第二个成员变量
     stFstrTmp.getline( szTmp,256,'\t' ); //读第一个成员,知道为什么开始写的时候
                //为什么要隔开了,因为读的时候,你要知道从哪里截至的。
     if( strlen(szTmp)==0 ) //这里还是读文件的问题,其实 .eof()和 feof()函数一样
        break;     //这里是可能读道文件尾了,再多读一次。
     stFstrTmp.getline(szTmp2,1028 );//getline函数第三个参数默认为'\n',即此函数
                //默认读一行,也就是读到'\n'止,但我们可以自己给她定,比如我们第
                //一次调用我们让他只读到 '\t'就截止。
     vstATmp.resize(vstATmp.size()+1); //扩容
     (vstATmp.end()-1)->B = atoi(szTmp); //用了向量的迭代器和第一个效果一样
     (vstATmp.end()-1)->C = szTmp2;
}


【 在 terryfeng (7UP) 的大作中提到: 】
: 我就是 用fstream读写的,但是出问题了....写没有问题,就是读的时候出错
: 【 在 starsun (法克斯尼) 的大作中提到: 】
: : fstream是可以整个对象读写...比你这个方法好得多...


--

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.92]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店