用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]中。文章来源:https://www.toymoban.com/news/detail-507075.html
#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文件中最后一个数字后面没有空格,但是按照上述代码依然可以正常读取,所以以后设计程序也就不需要再单独关心最后一个数字的情况。文章来源地址https://www.toymoban.com/news/detail-507075.html
到了这里,关于C++读取.txt文本文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!