C++ fstream的使用入门
2017-09-05 12:33
260 查看
最近考虑到要统计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文件会出错。
最开始用的是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文件会出错。
相关文章推荐
- 为什么游戏引擎大多选择使用 C++ 而不是 C 开发?
- C++ 使用 string 型態
- Qt关于dll的生成和使用(Qt C++ li…
- C++ 模板使用介绍
- Qt关于dll的生成和使用(Qt C++ li…
- 使用 C++ 来编写 Web 应用
- union:C/C++语言关键字 内存使用
- 如何使用C\C++实现文件的检索 ?
- 如何使用C\C++实现文件的检索 ?
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- 抛弃WinSCP 教你使用CuteFTP传输文件
- iPhone使用大全第二讲《Installer 3》
- 新版iPhone PC Suite完全详细使用教程
- iPhone LumaQQ聊天软件详细使用教程
- Touchpad Windows版详细使用教程
- 比分先知道 iScores球赛信息详细使用教程
- iPhone必用 新版installer详细使用教程
- 新手必用 iPhone iBus详细使用教程
- 新手必看 WinSCP软件详细使用教程
- C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)