C++文件输入流和输出流的基本使用

在了解文件的输入流输出流时,首先我们来了解一下文件的打开方式有哪些?

文件打开方式

ios::in 读的方式打开
ios::out 写的方式打开
ios::trunc 如果文件已经存在,打开文件之前就会把长度截为0
ios::binary 以二进制方式写(默认是文本方式)
ios::ate  文件打开后定位到文件尾部
ios::app 尾部追加写入

这些打开方式,都可以用位操作 | 组合使用.

对文件进行输入流,输出流的操作,需要使用头文件:

6a88972d2a704214b473e4c2932c1224.png

使用 fstream,可以定义一个对文件的输入流对象,也可以定义文件的输出流对象,但是在打开文件的时候,需要指明使用的是哪种文件打开方式.如果是用来写文件,那么就要在文件打开的时候时候在文件名后面加上 ios::out,例如:

C++文件输入流和输出流的基本使用_第1张图片

 读文件就需要在后面加上ios::in .

 

定义文件的输入流对象

ifstream  是专门用来定义文件的输入流对象,这时候可以不写文件打开方式(默认为ios::in),

1d51e490c1e0476189d4f45acc857947.png

 示例代码:

#include 
#include 
#include 

using namespace std;

int main()
{
	string name;
	int age;
	ifstream inFile;//定义了一个文件输入流对象

	inFile.open("user.txt");//文件默认为 ios::in 打开方式

	while (1) {
		inFile >> name;
		if (inFile.eof()) { //判断文件是否结束
			break;
		}
		cout << name << "\t";

		inFile >> age;
		cout << age << endl;
	}

	// 关闭打开的文件
	inFile.close();

	system("pause");
	return 0;
}

在读取文件的内容的时候,需要使用符号 >> 把文件的内容读取到变量name,age中,

 

定义文件的输出流对象

ofstream,时专门来定义文件的输出流对象的,同样不需要写文件打开方式(但编译器已经默认是ios::out)方式,

66464eae9e834e1180cf2df33205e06f.png

 示例代码:

#include
#include//文件操作

using namespace std;

int main1(void) {
	string name;
	int age;

	ofstream outFile;//定义了一个文件输出流对象
	outFile.open("user.txt");//使用输出流对象打开一个文件

	// 建议指定打开方式
	// ofstream的默认打开方式是 ios::out,截断式写入 ios::trunc

	//使用输出流对象打开一个文件, ios::out | ios::trunc
	//outFile.open("user.txt", ios::out | ios::trunc);

	while (1) {
		cout << "请输入姓名:[ctrl+Z推出]";
		cin >> name;

		if (cin.eof()) {
			break;
		}

		//把输入的姓名写入文件
		outFile << name << "	";

		cout << "请输入年龄";
		cin >> age;

		outFile << age << endl;
	}
	//关闭刚才打开的文件流
	outFile.close();


	system("pause");
	return 0;
}

需要用符号 << 把从键盘输入的数据,写到定义好的文件输出流对象 outFile 里面.

 

二进制的文件打开方式

读:

5c8a87382ae149c795218bf7200706c1.png

 写:

2ec58489a63a4c758f1395d170bcf555.png

 

以上就是今天的分享了!

 

 

你可能感兴趣的:(ios,c++)