#include<stream.h>
#include<stdlib.h>
void main()
{
ifstream fin("c:Sample.dat", ios::noctreate);
if(!fin)
{ cerr<<"Can't open the file!"<<endl;
exit(1);
}
int x, i=0;
while(fin<<x)//向文件写入一个整数
{
cout<<x<<"";
i++;
}
fin.close();
cout<<endl<<"文件中所有整数的个数为:"<<i<<endl;
}
一 打开文件
要通过一个流对象打开一个文件,我们使用它的成员函数open().
void open (const char* filename, openmode mode);
这里filename是一个字符串,代表要打开的文件名,mode是以下标识符的一个组合:
ios::in 为输入(读)而打开文件
ios::out 为输出(写)而打开文件
iso::ate 初始位置:文件尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件
ios::binary 二进制方式
ios::nocreate 不建立文件,所以文件不存在时打开失败
ios::noreplace 不覆盖文件, 所以打开文件时如果文件存在失败
ofstream, ifstream, fstream的默认打开方式:
ofstream: ios::out| ios::trunc
ifstream: ios::in
fstream: ios::in| ios::out
打开文件的属性取值:
0: 普通文件,打开访问
1:只读文件
2:隐含文件
4: 系统文件
例1:以二进制输入方式打开文件c:config.sys
fstream file1;
file1.open("c:config.sys", ios::binary|ios::in, 0);
例2:
fstream file1;
file.open("c:config.sys");
等同于
fstream file1;
file.open("c:config.sys", ios::in|ios::out, 0);
等同于
fstream file1("c:config.sys");//构造函数,定义时直接打开。
二 关闭文件
file1.close();
eof()用来检测文件是否到达末尾。是返回1,否则返回0. 原型是int eof();
例如:if(in.eof()) ShowMessage("文件已经到达末尾!");
三 文件读写
<< 向文件输出
file2<<"I love you";//向文件写入字符串
>> 从文件输入
int i;
file1>>i;//从文件输入一个整数值。