C++ fstream的使用入门

来源:互联网 发布:mac自带解压软件 编辑:程序博客网 时间:2024/05/24 07:03
最近考虑到要统计petuum中各个函数的运行时间,于是在源文件中加入计时语句,用timeval获取函数开始和结束的运行时间,然后用fstream输出到文件中。

最开始用的是ofstream,调试几次之后,发现ofstream的打开方式默认是覆盖,无法通过指定参数来修改,即ofstream的打开文件方式只能是ofstream.open("filename");后面无法再添加指定参数。因此改为用它的父类—— fstream。

fstream的open函数有两种
void open(const char* filename,int mode,int access)
void open(const char* filename,int mode);
区别在于第一种多了一个文件访问属性access
0:普通文件
1:只读文件  
2:隐含文件  
4:系统文件
但linux里面貌似不支持第一种open函数,用make命令编译时会报错,于是用了第二种。
open函数使用中另外一点需要注意的,就是第二个值mode,如果要不覆盖的修改文件,就加入ios::app参数,这样新内容就会添加在原来内容的后面。但是,一定不能只写ios::app,还要加入ios::out|ios::app,不然会发现文件依然不变,因为你根本没告诉系统我是要往里面写东西(即没加入ios::out属性),自然就没法更新文件

今天重新使用C++,各种细节都忘了,在这里也记录一下:
1、stdlib.h文件在c++中变成了cstdlib,如果需要用到exit函数,则要加入这个头文件。
2、在linux中,c++的编译命令是g++,gcc仅支持c的函数,用它来编译cpp文件会出错。
原创粉丝点击