文件操作2:读取

一、头文件

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

二、创建输入流对象

string filename = "E:/txt/test.txt";
ifstream fin;
fin.open(filename, ios::in);

与输出流不同,创建输入流对象,打开文件,若文件不存在,则打开失败

注意,输入流对象的唯一打开模式为ios::in   缺省值

实际上,下面三种打开书写形式作用相同

ifstream fin;
fin.open(filename, ios::in);

ifstream fin(filename);

ifstream fin(filename,ios::in);

输入流也要判断文件是否打开成功

失败的主要原因有:

(1)目录不存在

(2)文件不存在

(3)没有权限,Linux平台下很常见

if (fin.is_open() == false)
{
	cout << "打开文件" << filename << "失败\n";
	return 0;
}

三、读取文件内容

   文本文件一般以行的方式组织数据,所以我们以行的方式读取

方法一:

string buffer;
while (getline(fin, buffer))//从文件中读取一行数据,存在buffer中
{
	cout << buffer << endl;
}

从文件中读取一行行数据,存在buffer中,直到文件读取完,函数返回空

方法二:

char buffer[51];
while (fin.getline(buffer, 50))
{
	cout << buffer << endl;
}//一定要保证缓冲区足够大

方法三:

string buffer;
while (fin >> buffer)
{
	cout << buffer << endl;
}

第三种方法几乎与第一种相同,但比第一种更简单一些

四、关闭文件

fin.close();
cout << "操作文件完成\n";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值