文件的写入和读取的四种方式

一、对于文件的认识:

程序运行时产生的数据都属于临时文件,程序一旦运行结束都会被释放;

通过文件可以将数据持久化;

C++中对文件操作都需要包含头文件< fstream >;

文件类型分为两种:

(1)文本文件-文件以文本的ASCII码形式存储在计算机中;

(2)二进制文件-文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。

操作文件的三大类:

(1)ofstream: 写操作;

(2)ifstream: 读操作;

(3)fstream:读写操作。
此图是对文件的几种打开方式
文件的写入和读取的四种方式_第1张图片

二、文本文件的写

1,包含头文件

#include 

2,创建流对象

ofstream ofs;

3,打开文件

ofs.open("文件路径",打开方式);

4,写数据

ofs<<"写入的数据";

5,关闭文件

ofs.close(); 

注意:文件打开方式可以配合使用,利用 | 操作符;
例如:用二进制方式写文件 ios::binary | ios::out;

#include 
using namespace std;
#include 
#include 
 
void test1()
{
	ofstream ofs;
	ofs.open("test.txt", ios::out);
 
	ofs << "姓名:张三" << endl;
	ofs << "性别:男" << endl;
	ofs << "年龄:19" << endl;
 
	ofs.close();
}
 
int main()
{
	test1();
 
	system("pause");
	return 0;
}

三、读取文件的四种方式

#include
#include 
using namespace std;
void test(){
	
	ifstream ifs;
	ifs.open("text.txt",ios::in);
	
	if(!ifs.is_open()){
		cout << "文件打开失败!!"<<endl;
		return; 
	}
	//4、读数据
	// 1、第一种数据: 
//	char buf[1024]  = {0};
/*

这行代码 while (ifs >> buf) 是一个循环结构,它用于连续从输入流 ifs 读取数据到缓冲区 buf 中,直到遇到文件结束或其他某种错误条件。
具体来说,ifs >> buf 是一个输入操作,它将尝试从输入流 ifs 中读取数据到缓冲区 buf 中。如果读取成功,这个表达式将返回一个非零值(通常是 true),否则返回零值(通常是 false)。

*/
//	while(ifs >> buf){
//		cout << buf <
//	}

//	// 2、第二种数据
//	char buf[1024] = {0};
//	while(ifs.getline(buf,sizeof(buf))){
//		
//		cout << buf <
//	}
	
	// 3、第三种
//	string buf;
//	while(getline(ifs,buf)) {
//		cout << buf <
//	}
//	 

	// 4、第四种
	char c;
	while((c=ifs.get()) != EOF ){
		cout << c;
	}
	
	ifs.close();
}

int main(){

	
	test();
	
	
	return 0;
}

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