C++ 文件的基本操作

C++ 文件的基本操作

C++语言将文件看成无结构的字节流,根据文件数据的编码方式不同,分为文本文件和二进制文件。根据存取方式不同,分为顺序存取和随机存取方式。流库的ifstream,ofstream,fstream类用于内存和文件之间的数据交换。

文件的基本操作一般分为三个步骤:打开文件,读写文件,关闭文件

1,打开文件

如果以读的形式打开文件,应该用ifstream;

如果以写的形式打开文件,应该用ofstream;

如果以读写的形式打开文件,应该用fstream;

打开文件的方式有两种,分别为

1)先建立流对象,再调用open函数连接外部文件

//流类对象名
//对象名.open(文件名,方式);
fstream rwfile;
rwfile.open("d:\\newfile.txt",ios::in|ios::out);

2)调用流类带参数的构造函数,再建立流对象的同时连接外部文件

//流类对象名(文件名,方式)
fstream rwfile("d:\\newfile.txt",ios::in|ios::out);

文件打开方式

标识常量 意义
ios::in 0x0001 读方式打开文件
ios::out 0x0002 写方式打开文件(不存在文件则创建)
ios::ate 0x0004 打开文件时,文件指针指向文件末尾
ios::app 0x0008 追加方式,将向文件中输出的内容追加到末尾
ios::trunc 0x0010 删除文件现有的内容(类似ios::out的操作)
ios::nocreate 0x0020 如果文件不存在,则打开操作失败
ios::noreplace 0x0040 如果文件存在,则打开操作失败
ios::binary 0x0080 以二进制代码方式打开,默认为文本方式

2,关闭文件

当一个操作结束后,应及时关闭。关闭文件操作包括:把缓冲区数据完整地写入文件,添加文件结束标志,切断流对象与外部文件地连接。

一般用对应类的成员函数close来关闭文件

fstream rwfile("d:\\newfile.txt",ios::in|ios::out);
refile.close();

用close关闭文件后,若流对象的生成期还未结束,即流对象依然存在,还可以与其他文件连接。当一个流对象生成周期结束时,系统也会自动关闭文件。

#include
#include
using namespace std;
int main() {
	ofstream outfile;
	outfile.open("./newfile.txt",ios::out);
	for(int i=0; i<10; i++)
		outfile<<i<<" ";
	outfile.close();
	
	ifstream infile("./newfile.txt",ios::in);
	int a;
	while(infile>>a){
		cout<<a<<" ";
	}
	cout<<endl;
	infile.close();
	
	fstream rwfile;
	rwfile.open("./newfile.txt",ios::out|ios::app);
	for(int i=1; i<10; i++)
		rwfile<<i<<" ";
	rwfile.close();
	rwfile.open("./newfile.txt",ios::in);
	int b;
	while(rwfile>>b){
		cout<<b<<" ";
	}
	cout<<endl;
	rwfile.close();
	return 0;
}


你可能感兴趣的:(随笔)