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 
#include 
#include 
#include 
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文件中最后一个数字后面没有空格,但是按照上述代码依然可以正常读取,所以以后设计程序也就不需要再单独关心最后一个数字的情况。

你可能感兴趣的:(数据结构学习笔记(基于C++),数据结构,c++)