荔园在线

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

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


发信人: franky (斌), 信区: Program
标  题: Re: 求教一个读入数据的问题
发信站: 荔园晨风BBS站 (Thu Apr  6 10:30:50 2006), 站内

经常处理文本,有很多种方法,最方便的但移植性不怎么好的就是用二进制文本方
式,写的时候根本不用什么换行,直接用 fwrite 往文件中写,有多少写多少,当
然因为你的对象大小确定的,所以才能用二进制文本,读的时候可以随便在文件中
移动,fseek 函数非常有用的。读的话一个函数 fread 即可完成功能。

另外可以把对象的成员数据分开储存,可以这样做,每个对象存储一行。每个成员
数据之间必须用一个标志符号分开,如用‘\t’或者'<'之类的你的对象数据成员不
会出现的符号吧。

读的时候,可以一次读一行,用 fgets 函数读一行读到一个字符串里面,然后你再
处理这个字符串,将这些用标签分开的数据成员从这个字符串里面提取出来。

或者用c++中的流打开这个文件,然后流有一个函数非常有用,st::fstream::ge
tline( char* pszBuf,size_t size, char cStop )

直接从文本里面提取数据成员,比如如果你的标志符号是‘\t’,有三个数据成员
,你可以这样做, getline( pszBuf, 100000, '\t'),马上就可以得到一个数据成
员,第二个数据也可以这样读到,注意第三个数据成员只要这样读 getline( pszB
uf, 100000 ),这个函数有两个重载函数,有多种用法。


【 在 terryfeng (7UP) 的大作中提到: 】
: 可能我表达得不清楚,我详细点说吧
: class A
: {
: private:int x,y;
: public:
:      void set(int a,int b)
:     {
:        x=a,y=b;
:      }
: };
: ...................

--

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


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

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