C++文件操作

文件操作

    • 1. 文本文件
      • 1.1 写文件
        • 代码实现写文件:
      • 1.2 读文件
        • 代码实现读文件操作
    • 2. 二进制文件
      • 2.1 写文件
      • 2.1 读文件

C++中对文件操作需要包含头文件

文件类型分为两种:

  1. 文本文件:文件以文本的ASCLL码形式存储在计算机中
  2. 二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们

操作文件的三大类:

  1. ofstream:写操作
  2. ifstream:读操作
  3. fstream:读写操作

1. 文本文件

1.1 写文件

写文件步骤如下:

#include 
ofstream ofs;		//创建流对象
ofs.open("文件路径",打开方式);
ofs << "写入的数据";
ofs.close();

文件打开方式:

打开方式 解释
ios::in 为读文件而打开文件
ios::out 为写文件而打开文件
ios::ate 初始位置:文件为
ios::app 追加方式写文件
ios::trunc 如果文件存在先删除,再创建
ios::binary 二进制方式

注意:文件打开方式可以配合使用,利用|操作符

例如:用二进制方式写文件:ios::binary | ios::out

代码实现写文件:

#include 
using namespace std;
#include 

void test()
{
	//1、包含头文件 
	
	//2、创建流对象
	ofstream ofs;

	//3、指定打开方式
	ofs.open("test.txt", ios::out);

	//4、写内容
	ofs << "姓名:张三" << endl;
	ofs << "性别:男" << endl;
	ofs << "年龄:18" << endl;

	//5.关闭文件
	ofs.close();

}

int main()
{
	test();
	return 0;
}

总结:

  • 写文件可以利用ofstream,或者fstream类
  • 利用ofs.open函数打开文件
  • close关闭文件

1.2 读文件

读文件步骤如下:

#include //1、包含头文件

ifstream ifs; //2、创建流对象

ifs.open(“”,); //3、打开文件并判断文件是否打开成功

四种方式读取 //4、读数据

ifs.close(); //5、关闭文件

代码实现读文件操作

//文本文件 读文件
void test02()
{
	//1、包含头文件 
	
	//2、创建流对象
	ifstream ifs;

	//3、打开文件 并且判断是否打开成功
	ifs.open("test.txt", ios::in);
	if( !ifs.is_open() ){
		cout << "文件打开失败" << endl;
		return;
	}
	
	//4、读数据
	//第一种
	char buf[1024] = { 0 };
	while (ifs >> buf)	{
		cout << buf << endl;
	}

	//第二种
	char buf[1024] = { 0 };
	while ( ifs.getline(buf, sizeof(buf)) ) {
		cout << buf << endl;
	}

	//第三种
    //使用getline函数需要包含头文件
	string buf;
	while (getline(ifs, buf)) {
		cout << buf << endl;
	}

	//第四种
	char c;
	while (c = ifs.get() != EOF) {		//单个字符来读
		cout << c;
	}

	//5、关闭文件
	ifs.close();

}

总结:

  • 读文件可以利用ifstream,或者fstream类
  • 利用is_open函数可以判断文件是否打开成功
  • close关闭文件

2. 二进制文件

以二进制方式对文件进行读写操作
打开方式:ios::binary

2.1 写文件

使用成员函数write来写文件
函数原型:ostream& write(const char * buffer, int len);
参数解释:字符指针buffer指向内存中一段存储空间,len是读写的字节数(所用代码sizeof()

2.1 读文件

使用成员函数read来写文件
函数原型:istream& read(char * buffer, int len);
参数解释:字符指针buffer指向内存中一段存储空间,len是读写的字节数(所用代码sizeof()

你可能感兴趣的:(c++,开发语言)