几个有关fstream的问题不明白,请教大家。
1.fstream::tellg()和fstream::tellp()两个函数有什么区别?
2.我调用了几次fstream::tellg()后,就无法正常使用fstream::getline()读取信息了,返回给指针的是个空字符,怎么回事?
3.fstream::flush()一般在什么情况下使用?
问题点数:35、回复次数:9Top
1 楼jobs002(Oh! Office)回复于 2006-03-04 08:38:29 得分 5
昨天看你的帖子了,fstream::tellg()和fstream::tellp()主要是返回当前文件指针
第三个问题,帮你顶顶,我也不大清楚Top
2 楼jobs002(Oh! Office)回复于 2006-03-04 08:42:05 得分 5
随机访问
get和put指针分别指定读和写操作的当前位置,每次执行输入或输出操作时,这两个指针都按一定顺序自动移动,seekg( )和tellg( )函数可用来控制get指针,seekp( )和tellp( )函数对put指针进行类似的操作
Top
3 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 09:53:25 得分 0
再顶一个。Top
4 楼nevergone()回复于 2006-03-04 12:09:23 得分 5
fstream::tellg()和fstream::tellp()
tellg()用于ifstream,
tellp()用于ofstream
也不知道对不对,先顶一下Top
5 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 13:59:55 得分 0
多谢大家。
第二个问题总是解决不了,如果不调用tellg(),那文件还可以一行一行地读取,但是调用它之后,getline()就出问题了,这是不是一个bug?还是tellg()会修改文件里的位置指针?Top
6 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 16:58:15 得分 0
顶了。Top
7 楼caijize(砂子)回复于 2006-03-04 17:27:19 得分 5
ifstream和ofstream还是分开用,不要一起用。Top
8 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 21:47:36 得分 13
上面讲的很好了,
在补充一下,下面这两个函数都是用在二进制文件流操作中,所以lz对文本文件操作时不要使用
下面两个函数
fstream::tellg()和fstream::tellp()
3.fstream::flush()一般在什么情况下使用?
~~~~~~~~~~~~~
是刷新缓存,文件操作时,并不是对(应该说是I/O输入输出设备)文件直接。
而是操作内存,当一定时间过去或者内存满时,才把内存内的内容写入文件(I/O输入输出设备)
举个例子说明
fstream file("a.txt",ios_base_out);
file << "nihao" << endl;
file << "nihao1" << endl;
file << "nihao2" << endl;
// file.flush();// 如果本行被注释调,nihao的内容讲无法写入文件a.txt内,加上
// 这个一句后,nihao内容将输出到a.txt文件中
abort();// 终止程序
Top
9 楼yxg80(林夕昱)回复于 2006-03-05 10:49:45 得分 2
学习,帮顶Top




