资源简介
用C++类读取TXT文件数据,一行一个条数据,每条数据有3个不同数据字段,容器是用vector,字符串类型用string,指针的处理都是用封装的处理,C++就是强大
代码片段和文件信息
// classprog-readtxtforclass.cpp : 定义控制台应用程序的入口点。
//
#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 << line << endl;
int id = -1;
string name = ““;
float cost = 0.0;
string::size_type idx1 = -1 idx2 = -1;
//每行数据的三个字段由两个空格分开,定位空格的位置
for (string::size_type i = 0; i < line.length(); i++)
{
if (line[i] == ‘ ‘) (idx1 + 1)? idx2 = i:idx1 = i;
}
//如果该行数据完整,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“ << endl;
}
}
School GetMaxCostSchool() //暂不考虑并列,只取第一个最高
{
float fTempCost = 0.0;
School MaxSchool(-1““0.0);
for (vector::size_type idx = 0; idx != m_arrSchools.size(); idx++) {
if (fTempCost < m_arrSchools[idx].getcost())
{
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:“ << MaxCostSchool.getid() << endl;
cout << “id:“ << MaxCostSchool.getid() << endl;
cout << “name:“ << MaxCostSchool.getname() << endl;
cout << “cost:“ << MaxCostSchool.getcost() << endl;
}
else
{
cout << “no MaxCostSchool“ << endl;
}
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++实现的高斯投影正算和反算
相关资源
- 利用C++类实现PNG图像读写及显示
- plist 文件文本二进制互转
- C++文本文件无失真压缩 Huffman
- C#C++混合编程C#调用非托管C++类
- C#调用C++的dll,回调函数,string和in
- netcdf 4.4.1 c/c++类库windows64位绿色版
- MFC读取二进制文件并保存为文本文件
-
最简单的c++ xm
l类,跨平台使用 - json字符串转换c++类对象
- 《深入学习c++string》2.1版
- MFC读取文本文件方法
- CWnd类VC++类所有函数的中文翻译
- c语言库函数源代码包含string.h
- Student.zip166256
- MFC读取文本文件
- 《数据机构与算法》三级项目 - 开发
- c++类库管理系统分析与设计
- 在串str中查找字串substr最后一次出现
- NTFS数据恢复的c++类代码
- c++编写文本文件字符串替换程序
- 基于LSB的图片数据隐藏c++类
- VC使用CStringArray类创建和使用字符串数
- C++定义一个MyString类,实现两个字符串
- 文本文件检索程序代码
- c++类型长度查看方式
- 编写一个程序统计文本文件英文字母
- CString多字节字符集转utf-8函数和utf-
- 精确计算24节气的c++类
- 二进制文件转换成文本文件
- OpenGl文字显示c++类
川公网安备 51152502000135号
评论
共有 条评论