资源简介
用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++实现的高斯投影正算和反算
相关资源
- NTFS数据恢复的c++类代码
- c++编写文本文件字符串替换程序
- 基于LSB的图片数据隐藏c++类
- VC使用CStringArray类创建和使用字符串数
- C++定义一个MyString类,实现两个字符串
- 文本文件检索程序代码
- c++类型长度查看方式
- 编写一个程序统计文本文件英文字母
- CString多字节字符集转utf-8函数和utf-
- 精确计算24节气的c++类
- 二进制文件转换成文本文件
- OpenGl文字显示c++类
- mingw to_string()头文件
- 基于哈夫曼编码的文本文件压缩与解
- c++类声明和成员函数分离写法
- C++实现对文本(单纯文字,不是文本
- DES加密算法C++类
- C++读写txt文本文件
- Total CommanderTC的CudaLister插件32位和64位
- UTF8与ansi string转换处理(DELPHI7开发
- 绘制柱状图的C++类(附demo)
- c++string类的实现
- C++实战源码-将Word文档中数据导出到文
- C++实战源码-将多个文本文件合并到
- C++实战源码-读取文本文件内容到Wor
- C++实战源码-将文本文件中的数据导入
- C++实战源码-将Excel表格中数据导出到
- c++类似于window的屏保曲线算法
- 自写String类即使用
- C++ 文本文件的加密与解密
评论
共有 条评论