C/C++文件操作
原文地址:http://www.layz.net/blog/user1/xuanxuan/archives/2006/67.html
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write
Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。
2、析取器(>>)
从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取
一个指定类型(即变量x的类型)的数据。
在C++中,对文件的操作是通过stream的子类fstream(file
stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。
一、打开文件
在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:
void open(const char* filename,int mode,int access);
参数:
filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开
ios::out: 文件以输出方式打开
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0
可以用“或”把以上属性连接起来,如ios::out|ios::binary
打开文件的属性取值是:
0:普通文件,打开访问
1:只读文件
2:隐含文件
4:系统文件
可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。
例如:以二进制输入方式打开文件c:\config.sys
fstream file1;
file1.open("c:\\config.sys",ios::binary|ios::in,0);
如果open函数只有文件名一�
相关文档:
一、提前的话
要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编译调试工具,不过这些工具都是命令式的,正式开发的话会很不方便。Fedora在安装的时候可以选择安装Fedora Eclipse,这个IDE很强大,C,C++,Java,Python等等都支持,而且编译,调试和 ......
我对内容做出部分调整。
前些天有人发帖问如果在 linux 下用 eclipse 开发
C/C++,所以我就想写这么一篇帖子,因为一直在用 Eclipse 做 JAVA
开发,对Eclipse比较熟悉,安装插件当然也不成问题。无意中在网上看到这篇帖子,觉得写的很详细,我也就觉得自己没有必要再在这上面浪� ......
在netbeans中编辑C/C++是一种不错的选择,下面我就说一下整个流程的配置
1.先下载MinGW
这是编译c/c++的编译器,在windows下直接以.exe的方式运行,下一步的操作,一直到安装完成。
2.下载msys
这是和MinGW同步使用
3.配置环境
在我的电脑->属性->高级->环境变量中设置MinGW和msys目录中bin所在的路径
4.测试
用命令行方式� ......
1.3 单元测试能产生哪些效益?
单元测试的效益已经得到广泛的认同,现在的问题已经不是有没有必要做,值不值得做,而是如何多快好省地做好单元测试,所以,关于效益,这里只是简单的介绍一下。
效益一,保证代码质量
只有单元测试才能完整检测代码单元的功� ......