红联Linux门户
Linux帮助

fstream使用的两则注意事项

发布时间:2008-10-05 01:14:05来源:红联作者:Offera
1、以 append 方式打开文件

ofstream oFile;
oFile.open(strFileName.c_str(), ios_base::binary | ios_base::out | ios_base::app);

此时,你以为该 oFile 的写指针是在哪里?文件头?文件尾部?事实上,在 linux 下它是文件尾部,在 windows 下,它是文件头部。因些,如果你是在 windows 下编程,打开文件后,一定要记着做如下操作:

oFile.seekp(0, ios::end);

2、fstream 的交叉读写

如果你需要使用 fstream 对一个文件,一会儿进行读,一会儿进行写,一会儿又读、又写类似这样的“交叉”读写,一定要特别注意,否则错都不知道哪里错了,会出现一些奇怪、不易定位的问题。因为 fstream 有一个读指针和一个写指针。分别通过 getg seekg 来获取、设置读指针,通过 getp seekp 来获取、设置写指针。如果由读操作转为写操作,一定要使用 seekp 设置好写指针。同理,如果是由写操作转为读操作,一定要使用 seekp 设置好读指针。否则,你就见鬼了。读到的不是你想要的,写入的乱七八糟。
文章评论

共有 0 条评论