栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++文件操作部分

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++文件操作部分

文件操作

文件打开方式文本文件

写文件读文件 二进制文件

写文件读文件
程序运行时所产生的数据都属于临时数据,程序一旦运行结束就会被释放。 通过文件可以将数据持久化。C++中对文件操作需要包含头文件

文件类型分为文本文件和二进制文件。
文本文件:以文本的ASCII码形式存储在计算机中。
二进制文件:以文本的二进制形式存储在计算机中,用户一般不能直接读懂。

操作文件的三大类:ofstream(写操作), ifstream(读操作),fstream(读写操作)。

文件打开方式

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

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

步骤如下:
step1:包含头文件
step2:创建流对象
step3:打开文件
step4:写数据
step5:关闭文件

#include
#include//1、包含头文件
using namespace std;

void test01() {
	//2、创建流对象
	ofstream ofs;
	//3、指定打开方式
	ofs.open("test.txt", ios::out);
		

	//4、写入内容
	ofs << "这是一个写入文件的txt文件";
	//5、关闭文件
	ofs.close();

}
int main() {
	test01();
	system("pause");
	return 0;
}
读文件

步骤如下:
step1:包含头文件
step2:创建流对象
step3:打开文件并判断文件是否打开成功
step4:读数据(四种方法)
step5:关闭文件

#include
#include//1、包含头文件
#include
using namespace std;

void test01() {
	//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;
	//}


	//第三种方法,使用字符串
	//string buf;
	//while (getline(ifs,buf)) {
	//	cout << buf << endl;
	//}


	//第四种方法,逐个字符读取,一般不推荐使用
	//char c;
	//while ((c = ifs.get()) != EOF) {       //EOF = end of file 文件尾
	//	cout << c << endl;
	//}


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

}
int main() {
	test01();
	system("pause");
	return 0;
}
二进制文件

以二进制的方式对文件进行读写操作,打开方式要指定为ios::binary。

写文件

二进制方式写文件主要利用流对象调用成员函数write()。

#include
#include  //1、包含头文件
using namespace std;

class Person {
public:
	char m_name[64];   //这里用char不用string是为了避免一些错误
	int m_age;
};

void test01() {
	//2、创建流对象
	ofstream ofs("person.txt", ios::out | ios::binary);   //本身的构造函数也可以打开文件

	//3、打开文件
	//ofs.open("person.txt",ios::out | ios::binary);   //加上 ios::binary表示是二进制文件

	//4、写入文件
	Person p = {"张三",18};
	ofs.write((const char*)&p,sizeof(Person));  //取p的地址,将它强转成const char*类型

	//5、关闭文件
	ofs.close();
}
int main() {
	test01();
	system("pause");
	return 0;
}
读文件

二进制方式读文件主要利用流对象调用成员函数read()。

#include
#include  //1、包含头文件
using namespace std;

class Person {
public:
	char m_name[64];
	int m_age;
};
void test01() {
	//2、创建流对象
	ifstream ifs;
	//3、打开文件 判断文件是否打开成功
	ifs.open("person.txt", ios::in | ios::binary);   //二进制文件加上ios::binary
	if (!ifs.is_open()) {
		cout << "文件打开失败!" << endl;
		return;
	}
	//4、读文件
	Person p;
	ifs.read((char*)&p,sizeof(Person));
	cout << "姓名: " << p.m_name << " 年龄: " << p.m_age << endl;
	//5、关闭文件
	ifs.close();
}
int main() {
	test01();
	system("pause");
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号