1008文本文件02读操作

110 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

1.读文件的操作

读文件与写文件步骤相似,但是读取方式相对于比较多

  • 读文件步骤如下:

    1. 包含头文件

      #include <fstream>

    1. 创建流对象

    ifstream ifs;

    1. 打开文件并判断文件是否打开成功

    ifs.open("文件路径",打开方式); 返回类型是布尔的数据类型,返回真或者假。如果打开成功返回真;如果打开失败那就返回假。

    1. 读数据

    四种方式读取

    1. 关闭文件

    ifs.close();

2.判断打开失败或者成功

#include<iostream>
#include <fstream>
using namespace std;
//#include <string>
void h()
{
	ifstream ifs;
	ifs.open("E:/h.txt", ios::in);
	
	if (ifs.is_open())
	{
		cout << "文件打开成功" << endl;
		return;
	}
	else if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
		return;
	}
	ifs.close();


}

int main() {

	h();

	system("pause");

	return 0;
}

输出:

文件打开成功 请按任意键继续. . .

ifs.open("E:/L.txt", ios::in);

输出:

文件打开失败 请按任意键继续. . .

3.把文件的数据读到我们程序中去

  • 第一种方法:

用循环的方式把三行数据全部拿到手: 利用ifs右移运算符把数据放到buff中,当数据全部读到手之后,循环也就结束了。

#include<iostream>
#include <fstream>
using namespace std;
#include <string>
void h()
{
	ifstream ifs;
	ifs.open("E:/h.txt", ios::in);
	if (ifs.is_open())
	{
		cout << "文件打开成功" << endl;
		
	}
	
	else if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
		return;
	}
	char a[1024] = { 0 };
	while (ifs >> a)
	{
		cout << a << endl;
	}
	ifs.close();


}

int main() {

	h();

	system("pause");
        

	return 0;
}

输出:

文件打开成功 姓名:侯舒婷 性别:女 年龄:18 请按任意键继续. . .

4.操作文件的三大类

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

5.文件打开方式

打开方式解释
ios::in为读文件而打开文件
ios::out为写文件而打开文件
ios::ate初始位置:文件尾
可能你打开的文件已经有内容了,所以打开的时候直接追加到文件尾。
ios::app追加方式写文件
也是打开文件的时候直接打开文件尾,追加着写一些东西。
ios::trunc如果文件存在先删除,再创建
ios::binary二进制方式

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