用C++讀取.txt文本文件步驟如下:定義一個(gè)文件流對(duì)象、打開文件、讀文件、關(guān)閉文件。
1.定義文件流對(duì)象
涉及文件操作的程序一般都會(huì)使用fstream類,所以要在程序開頭包含頭文件fstream。
一個(gè)文件流對(duì)象與一個(gè)輸入文件相關(guān)聯(lián),定義一個(gè)文件流對(duì)象infile。
ifstream infile;
2.打開文件
一般將需要打開的文件放在源代碼的同級(jí)工作目錄下,這里以打開一個(gè)文件名為in的.txt文件為例。也可以用文件的絕對(duì)存儲(chǔ)位置來指代文件。
infile.open("in.txt");
3.讀文件
讀文件會(huì)使用文件流對(duì)象infile的getline()方法,原型如下:
bool getline(char*, int, char='\n');
讀文件前需要知道文件內(nèi)容是如何組成的,比如文件是一行一個(gè)整數(shù)組成的,或者文件是由若干個(gè)小數(shù)以空格為間隔組成的,這會(huì)影響到getline()的參數(shù)設(shè)置。
一般使用一個(gè)字符數(shù)組去讀取文件,每調(diào)用一次getline(),就對(duì)文件讀取一次,文件的讀寫位置指針也隨之移動(dòng)。char*是字符數(shù)組名,int為單次讀取的最大字符數(shù),char表示每次讀取以什么為間隔符,其缺省值為換行符'\n'。如果需要讀的文件是以空格為間隔符,則需設(shè)定char=' '。
由于讀出的為字符串,存儲(chǔ)在字符數(shù)組char*中,還需要將字符串轉(zhuǎn)化為需要的數(shù)據(jù)類型。可以使用string頭文件的stoi(),stol(),stof()等函數(shù)來完成類型轉(zhuǎn)換。
4.關(guān)閉文件
infile.close();
下面給出完整的代碼示范。在in.txt文件中有10個(gè)整數(shù),以空格為間隔符。設(shè)計(jì)程序讀取這10個(gè)整數(shù)并存到數(shù)組num[10]中。文章來源:http://www.zghlxwxcb.cn/news/detail-507075.html
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
void main()
{
char line[5];//字符數(shù)組,用于讀取,這里假設(shè)每次讀取的整數(shù)不超過4個(gè)字符
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,存放在數(shù)組num[10]中
i++;
}
infile.close();//關(guān)閉文件
}
運(yùn)行程序發(fā)現(xiàn),雖然in.txt文件中最后一個(gè)數(shù)字后面沒有空格,但是按照上述代碼依然可以正常讀取,所以以后設(shè)計(jì)程序也就不需要再單獨(dú)關(guān)心最后一個(gè)數(shù)字的情況。文章來源地址http://www.zghlxwxcb.cn/news/detail-507075.html
到了這里,關(guān)于C++讀取.txt文本文件操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!