亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中讀寫txt文件并分離字符的方法

2020-05-23 13:28:54
字體:
來源:轉載
供稿:網友

在實際工程中,經常遇到需要讀取txt文件,txt文件中存的是一些小數或者整型數據,在C++中,可以利用string類和ifstream庫文件對txt進行的讀取,不過讀回的數據經常是以字符串的形式返回,一般是txt的一行為一個字符串返回。那么如何從字符串中分離出整數或者是小數就涉及到字符串的分割問題,下面就該問題進行總結。

一、C++中txt文件的讀取

需要讀取的txt文件如下:

C++,讀寫,txt文件,分離字符

代碼如下:

#include<iostream>#include<string>#include<fstream>using namespace std;int main(){	string s;		//每次讀取一行txt文件返回的字符串	//讀取一txt文件	ifstream infile1;	infile1.open("1.txt");	while(getline(infile1, s))	{		cout << s << endl;	}	infile1.close();	//關閉文件	cin.get();	return 0;}

執行結果如下:

C++,讀寫,txt文件,分離字符

注意:

(1)函數getline是一行一行讀取txt文件,讀回的結果以字符串的形式存儲在s中,要讀回具體的數據必須對字符串進行分離。

(2)打開txt必須用到fstream庫中的ifstream類和其open和close成員函數。

(3)文件讀取后一定要記得關閉文件,即調用close函數

二、字符串的分離

1讀取的txt中只有整形的情況(要讀回的txt文件如上圖中所示)

代碼如下:

#include<iostream>#include<string>#include<fstream>using namespace std; //如果字符串中都是整數void stringTOnum1(string s, int* pdata){	bool temp=false;		//讀取一個數據標志位	int data=0;				//分離的一個數據	int m=0;				//數組索引值	for(int i=0;i<s.length();i++)	{		while((s[i]>='0')&&(s[i]<='9'))		//當前字符是數據,并一直讀后面的數據,只要遇到不是數字為止		{			temp=true;		//讀數據標志位置位			data*=10;			data+=(s[i]-'0');		//字符在系統以ASCII碼存儲,要得到其實際值必須減去‘0'的ASCII值			i++;		}		//剛讀取了數據		if(temp)		//判斷是否完全讀取一個數據		{			pdata[m]=data;		//賦值			m++;			data=0;					temp=false;		//標志位復位		}	}}  int main(){	int* pdata =new int[5];	string s; 	//讀取第一個txt文件	ifstream infile1;	infile1.open("1.txt");	while(getline(infile1, s))	{		stringTOnum1(s, pdata);		for(int i=0;i<5;i++)			cout << pdata[i] << " ";		cout << endl;	}	infile1.close();	cin.get();	return 0;}

執行的結果如下:

C++,讀寫,txt文件,分離字符

順利地讀取了每行數據并分離出了整型數據保存在了數組中。

注意:

(1)字符在系統中以其ASCII碼存儲,對于數字字符要得到其實際的值,必須減去‘0'字符的ASCII碼,之后的ASCII碼就與數字字符的數據一致。

(2)基本思想:當遇到一個字符是數據后,不停的循環讀后面的字符,直到遇到不是數字字符為止。

2讀取的txt中有小數的情況

讀回的txt如下圖所示:

C++,讀寫,txt文件,分離字符

分離字符的函數如下:

//如果字符串中有小數void stringTOnum2(string s, double* pdata){	bool temp=false;	int ndata=0;		//整數部分	double	fdata=0;	//小數部分	int n=0;			//小數部分的位數	int m=0;	for(int i=0;i<s.length();i++)	{		while((s[i]>='0')&&(s[i]<='9')||(s[i]=='.'))		//當前字符是數據或者是小數點		{			temp=true;			if(s[i]=='.')		//遇到了小數點			{				//不停的讀取后面的小數				i++;		//小數后的下一位				while((s[i]>='0')&&(s[i]<='9'))				{					n--;					fdata += (pow(10, n)*(s[i]-'0'));					i++;				}			}			//沒有遇到小數點			else			{				ndata*=10;				ndata+=(s[i]-'0');				i++;			}		}		//剛讀取了數據		if(temp)		{			pdata[m]=ndata+fdata;			m++;			ndata=0;			fdata=0;			n=0;			temp=false;		}	}}

運行結果如下:

C++,讀寫,txt文件,分離字符

基本思想:在原先的基礎上不僅要判斷是否遇到了數字字符還需要判斷是都遇到了小數點‘.'字符,如果遇到小數點字符,將后面的數據循環讀取直到遇到不是數字字符為止。但是需要將其存為小數,有移位。

以上這篇C++中讀寫txt文件并分離字符的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久九九有精品国产23| 亚洲自拍av在线| 久久成人精品电影| 色爱av美腿丝袜综合粉嫩av| 中文字幕av一区中文字幕天堂| 91沈先生作品| 日韩福利视频在线观看| 国产精品久久久久999| 欧美一级淫片播放口| 国产精品丝袜视频| 欧美日韩国产精品一区| 中文字幕九色91在线| 成人激情视频在线播放| 欧美性色视频在线| 日韩欧美精品在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产日韩综合一区二区性色av| 成人在线一区二区| 日韩福利伦理影院免费| 欧美日韩黄色大片| 成人黄在线观看| 日韩久久精品成人| 麻豆乱码国产一区二区三区| 97超碰蝌蚪网人人做人人爽| 午夜精品视频在线| 国产欧美久久一区二区| 国产偷亚洲偷欧美偷精品| 欧美性极品xxxx做受| 69av视频在线播放| 中文字幕久精品免费视频| 久久99热精品这里久久精品| 欧美日韩视频在线| 亚洲丁香久久久| 国产精品91视频| 永久555www成人免费| 色婷婷综合成人av| 隔壁老王国产在线精品| 国产精品精品视频一区二区三区| 亚洲国产精品久久久久秋霞不卡| 国产z一区二区三区| 成人a视频在线观看| 欧美在线xxx| 精品欧美国产一区二区三区| 亚洲午夜国产成人av电影男同| 欧美中文字幕视频在线观看| 久久影视电视剧免费网站清宫辞电视| 日本免费一区二区三区视频观看| 欧洲成人在线视频| 丁香五六月婷婷久久激情| 亚洲精品成人久久| 中文字幕日韩免费视频| 国产精品成人一区二区| 欧美精品中文字幕一区| 日韩欧美高清视频| 自拍偷拍免费精品| 欧美高清视频在线观看| 精品中文字幕在线| 日韩成人在线观看| 欧美性一区二区三区| 成人久久一区二区三区| 日韩综合中文字幕| 成人综合网网址| 欧日韩在线观看| 91精品久久久久久久久久| 精品久久久久久久久久ntr影视| 97色在线观看免费视频| 亚洲自拍小视频免费观看| 亚洲激情久久久| 亚洲女人天堂成人av在线| 一本色道久久88综合亚洲精品ⅰ| 国产不卡精品视男人的天堂| 岛国av一区二区三区| 亚洲护士老师的毛茸茸最新章节| 好吊成人免视频| 日韩精品视频在线免费观看| 亚洲第一国产精品| 欧美性xxxxx| 中文字幕亚洲第一| 91精品视频一区| 亚洲成人网在线观看| 欧美日韩亚洲激情| 亚洲精品视频在线观看视频| 91精品久久久久久久久久久久久久| 丝袜情趣国产精品| 亚洲成人激情在线观看| 亚洲激情视频在线观看| 日本韩国欧美精品大片卡二| 亚洲精品网站在线播放gif| 欧美最猛黑人xxxx黑人猛叫黄| 日韩精品视频在线免费观看| 久久久精品在线| 欧美精品videosex性欧美| 亚洲美女中文字幕| 亚洲视频在线观看网站| 国产伦精品一区二区三区精品视频| 国产精品永久免费| 日韩欧美成人区| 色婷婷亚洲mv天堂mv在影片| 国产一区二区三区18| 7777精品视频| 国产精品自在线| 伊是香蕉大人久久| 亚洲级视频在线观看免费1级| 日韩在线中文字| 日韩av男人的天堂| 久久久国产影院| 精品久久久中文| 欧美激情第99页| 国产精品一区二区三区免费视频| 91精品久久久久| 日韩在线视频中文字幕| 久热国产精品视频| 国产精品久久久久久久美男| 亚洲综合最新在线| 美女性感视频久久久| 日韩a**站在线观看| 亚洲电影免费观看高清| 中日韩午夜理伦电影免费| 亚洲精品久久久久久下一站| 中文字幕综合在线| 欧美精品在线播放| 欧美黄色性视频| 中文字幕亚洲一区二区三区五十路| 亚洲视频在线免费观看| 久久中文字幕视频| 黄色精品一区二区| 最近2019免费中文字幕视频三| 久久久久久网址| 久久久噜噜噜久噜久久| 久久影视电视剧免费网站| www.亚洲一区| 国产在线不卡精品| 中文字幕亚洲一区在线观看| 欧美一级淫片videoshd| 久久精品久久久久久国产 免费| 中文字幕欧美精品日韩中文字幕| 国产精品国内视频| 久久亚洲精品视频| 欧美大胆在线视频| 亚洲美女免费精品视频在线观看| 亚洲精品少妇网址| 欧美视频不卡中文| 久久久91精品国产| 在线观看不卡av| 国产婷婷色综合av蜜臀av| 精品久久久久久久中文字幕| 96sao精品视频在线观看| 欧美精品videossex88| 欧洲成人性视频| 国内精品免费午夜毛片| 欧美激情国内偷拍| 亚洲人成亚洲人成在线观看| 91久久久久久久| 国产一区二区三区视频在线观看| 精品国内自产拍在线观看| 日韩免费av一区二区| 久久99精品久久久久久噜噜| 92福利视频午夜1000合集在线观看| 欧美日韩国产一区在线| 欧美激情videos| 欧美日韩亚洲激情| 亚洲综合在线小说| 亚洲国产毛片完整版| 国产精品久久久久久av福利软件|