欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

c++文件操作

程序员文章站 2022-06-16 09:16:27
文件操作1、文件的定义和打开ifstream类: 读文件ofstream类: 写文件专类专事(只能进行读或者写)所以我们会使用fstream去操作文件,它时ifstream和ofstream类的父类。定义文件 fstream file;1.打开文件file.open(char* fileURL,int mode);mode: ios::in 读ios::out 写(清空重写)ios::app 追加模式 不具有创建功能ios::trunc:...

文件操作

1、文件的定义和打开

ifstream类: 读文件
ofstream类: 写文件
专类专事(只能进行读或者写)

所以我们会使用fstream去操作文件,它时ifstream和ofstream类的父类。

定义文件 fstream  file;
1.打开文件
	file.open(char* fileURL,int mode);
	mode: 
		ios::in 		读
		ios::out 		写(清空重写)
		ios::app 		追加模式  不具有创建功能
		ios::trunc: 	覆盖已经存在的文件
		ios::binary  	二进制写法
	组合方式  |
		ios::in  |  ios::out

	判断文件是否打开: !file  ||  !file.is_open任选其一,均可。

2.读写文件

读写有2种的方式:

	2.1 流的方式做读写
		
	2.2 成员函数的方式做读写     字节流
	
	write(源地址,大小)    	 函数
	read(源地址,大小)		 函数

在读写时是以空格为分隔符,

fd << str2 << " " << 4 ;
fd.seekg(0, ios::beg);				  //指针移动回去  字节方式移动
int num=0;				
char str[20] = " ";     			
fd >> str>>num;							//要用类型对应的接收

注意在读写时,要记住你动了文件指针,需要回到原来时,记得移动。

3.关闭文件

	file.close();

4.文件移动

	C语言:fseek
	seekg( size_t size , int position )
	ios::beg			开头
	ios::end			结尾
	ios::cur			当前

5、文件指针位置获取

tellg();  //移动字节数

代码

以流的方式

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
	fstream fd;
	fd.open("2.txt", ios::out |ios::in);
	if (!fd || !fd.is_open())
	{
		cout << "打开失败" << endl;
		fd.open("2.txt", ios::out | ios::in|ios::trunc);
		cout << "创建成功" << endl;
	}
	const char* str2 = "哈哈哈";
	fd << str2 << " " << 4 ;
	fd.seekg(0, ios::beg);	//指针移动回去  字节方式移动
	int num=0;	
	char str[20] = " ";     
	fd >> str>>num;
	cout << str << num << endl;
	int n = fd.tellg();  //文件指针
	cout << n << endl;

	fd.close();
	system("pause"); 
	return 0;
}

以成员函数的方式

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
	fstream fd;
	fd.open("3.txt", ios::in | ios::out);
	if (!fd)
	{
		cout << "打开失败" << endl;
		fd.open("3.txt", ios::out | ios::in | ios::trunc);
		cout <<"创建成功"<<endl;
	}
	stu s[3] = { {1,"小"},{2,"中"},{3,"大"} };
	fd.write((char*)s, sizeof(stu) * 3);

	stu t[3];
	fd.seekg(0, ios::beg);
	fd.read((char*)t, sizeof(stu) * 3);
	cout << t[1].id << "\t" << t[1].name << endl;
	cout << t[2].id << "\t" << t[2].name << endl;

	cout << t[0].id << "\t" << t[0].name << endl;

	fd.close();
	system("pause"); 
	return 0;
}

本文地址:https://blog.csdn.net/weixin_51448994/article/details/114270559

相关标签: c++