資源簡介
用C++類讀取TXT文件數(shù)據(jù),一行一個條數(shù)據(jù),每條數(shù)據(jù)有3個不同數(shù)據(jù)字段,容器是用vector,字符串類型用string,指針的處理都是用封裝的處理,C++就是強大

代碼片段和文件信息
//?classprog-readtxtforclass.cpp?:?定義控制臺應(yīng)用程序的入口點。
//
#include?“stdafx.h“
#include? //?字符串類string頭文件
#include? //?容器類vector頭文件
#include? //?TXT文件流訪問類
#include?
using?namespace?std;
class?School?{
private:
int?m_id;
string?m_name;
float?m_cost;
public:
School(int?id?string?name?float?cost)?{
m_id?=?id;
m_name?=?name;
m_cost?=?cost;
}
int getid(void) {?return?m_id;?}
string getname(void) {?return?m_name;?}
float getcost(void) {?return?m_cost;?}
void?putid(int?id) {?m_id?=?id;?}
void?putname(string?name) {?m_name?=?name;?}
void?putcost(float?cost) {?m_cost?=?cost;?}
};
class?Maxschool?{
private:
vector?m_arrSchools;
public:
Maxschool(string?strFileTxtPath)?{
ifstream?txtfile(strFileTxtPath);
string?line;
m_arrSchools.clear();
if?(txtfile)?//?有該文件??
{
while?(getline(txtfile?line))?//?line中不包括每行的換行符??
{
//cout?< int?id?=?-1;
string?name?=?““;
float?cost?=?0.0;
string::size_type?idx1?=?-1?idx2?=?-1;
//每行數(shù)據(jù)的三個字段由兩個空格分開,定位空格的位置
for?(string::size_type?i?=?0;?i? {
if?(line[i]?==?‘?‘) (idx1?+?1)??idx2?=?i:idx1?=?i;
}
//如果該行數(shù)據(jù)完整,idx2不為-1否則該School實例id為-1
if?(idx2?+?1)
{
id?=?stoi(line.substr(0?idx1?+?1)?nullptr?0);
name?=?line.substr(idx1?idx2?-?idx1);
cost?=?stof(line.substr(idx2)0);
}
//
School?tempSchool(idnamecost);
m_arrSchools.push_back(tempSchool);
}
}
else?//?沒有該文件??
{
cout?<“no?such?file“?< }
}
School?GetMaxCostSchool() //暫不考慮并列,只取第一個最高
{
float?fTempCost?=?0.0;
School?MaxSchool(-1““0.0);
for?(vector::size_type?idx?=?0;?idx?!=?m_arrSchools.size();?idx++)?{
if?(fTempCost? {
fTempCost?=?m_arrSchools[idx].getcost();
MaxSchool.putid(m_arrSchools[idx].getid());
MaxSchool.putname(m_arrSchools[idx].getname());
MaxSchool.putcost(m_arrSchools[idx].getcost());
}
}
return?MaxSchool;
}
};
int?main()
{
Maxschool?MaxSchooslnfo(“schoolsinfo.txt“);
School?MaxCostSchool?=?MaxSchooslnfo.GetMaxCostSchool();
if?(MaxCostSchool.getid()?+?1)
{
cout?<“find?MaxCostSchool:“?< cout?<“id:“?< cout?<“name:“?< cout?<“cost:“?< }
else
{
cout?<“no?MaxCostSchool“?< }
getchar();
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????33792??2018-04-23?14:25??classprog-readtxtforclass\.vs\classprog-readtxtforclass\v14\.suo
?????文件???????2713??2018-04-23?14:18??classprog-readtxtforclass\classprog-readtxtforclass\classprog-readtxtforclass.cpp
?????文件???????8071??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\classprog-readtxtforclass.vcxproj
?????文件???????1332??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\classprog-readtxtforclass.vcxproj.filters
?????文件??????????3??2018-04-23?14:22??classprog-readtxtforclass\classprog-readtxtforclass\Debug\classprog-readtxtforclass.log
?????文件???????1636??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\ReadMe.txt
?????文件????????105??2018-04-23?14:12??classprog-readtxtforclass\classprog-readtxtforclass\schoolsinfo.txt
?????文件????????229??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\stdafx.cpp
?????文件????????234??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\stdafx.h
?????文件????????240??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass\targetver.h
?????文件???????1357??2018-04-23?11:15??classprog-readtxtforclass\classprog-readtxtforclass.sln
?????目錄??????????0??2018-04-23?11:15??classprog-readtxtforclass\.vs\classprog-readtxtforclass\v14
?????目錄??????????0??2018-04-23?14:22??classprog-readtxtforclass\classprog-readtxtforclass\Debug\classpro.ED5ED8E2.tlog
?????目錄??????????0??2018-04-23?11:15??classprog-readtxtforclass\.vs\classprog-readtxtforclass
?????目錄??????????0??2018-04-23?14:22??classprog-readtxtforclass\classprog-readtxtforclass\Debug
????...D.H.?????????0??2018-04-23?11:15??classprog-readtxtforclass\.vs
?????目錄??????????0??2018-04-23?14:18??classprog-readtxtforclass\classprog-readtxtforclass
?????目錄??????????0??2018-04-23?14:26??classprog-readtxtforclass
-----------?---------??----------?-----??----
????????????????49712????????????????????18
- 上一篇:傅立葉變換/逆變換 C
- 下一篇:C++實現(xiàn)的高斯投影正算和反算
評論
共有 條評論