C++读取.txt文本文件操作

用C++读取.txt文本文件步骤如下:定义一个文件流对象、打开文件、读文件、关闭文件。

1.定义文件流对象

涉及文件操作的程序一般都会使用fstream类,所以要在程序开头包含头文件fstream。

一个文件流对象与一个输入文件相关联,定义一个文件流对象infile。

ifstream infile;

2.打开文件

一般将需要打开的文件放在源代码的同级工作目录下,这里以打开一个文件名为in的.txt文件为例。也可以用文件的绝对存储位置来指代文件。

infile.open("in.txt");

3.读文件

读文件会使用文件流对象infile的getline()方法,原型如下:

bool getline(char*, int, char='\n');

读文件前需要知道文件内容是如何组成的,比如文件是一行一个整数组成的,或者文件是由若干个小数以空格为间隔组成的,这会影响到getline()的参数设置。

一般使用一个字符数组去读取文件,每调用一次getline(),就对文件读取一次,文件的读写位置指针也随之移动。char*是字符数组名,int为单次读取的最大字符数,char表示每次读取以什么为间隔符,其缺省值为换行符'\n'。如果需要读的文件是以空格为间隔符,则需设定char=' '。

由于读出的为字符串,存储在字符数组char*中,还需要将字符串转化为需要的数据类型。可以使用string头文件的stoi(),stol(),stof()等函数来完成类型转换。

4.关闭文件

infile.close();

下面给出完整的代码示范。在in.txt文件中有10个整数,以空格为间隔符。设计程序读取这10个整数并存到数组num[10]中。

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

void main()
{
	char line[5];//字符数组,用于读取,这里假设每次读取的整数不超过4个字符
	int num[10];
	int i = 0;
	ifstream infile;
	infile.open("in.txt");//打开文件
	if (!infile)
	{
		cout << "无法打开文件!" << endl;
		exit(1);
	}
	while (infile.getline(line, 5, ' '))
	{
		num[i] = stoi(line);//string to int,存放在数组num[10]中
		i++;
	}
	infile.close();//关闭文件
}

运行程序发现,虽然in.txt文件中最后一个数字后面没有空格,但是按照上述代码依然可以正常读取,所以以后设计程序也就不需要再单独关心最后一个数字的情况。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值