华为OJ——简单错误记录
来源:互联网 发布:淘宝直播买翡翠 编辑:程序博客网 时间:2024/05/18 18:18
简单错误记录
题目描述
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
处理:
1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加;
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;
3、 输入的文件可能带路径,记录文件名称不能带路径。
输入描述:
一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。
输出描述:
将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:
输入例子:
E:\V1R2\product\fpgadrive.c 1325
输出例子:
fpgadrive.c 1325 1
解答代码:
#include<iostream>#include<vector>#include<string>#include<sstream>#include<algorithm>using namespace std;typedef struct node{ string fileName; int fileLine; int count; node(string fileName_,int fileLine_) { this->fileName=fileName_; this->fileLine=fileLine_; this->count=1; } bool operator== (const node & errnode) const { return (errnode.fileName == fileName) && (errnode.fileLine==fileLine); }} ERRNODE;string getFileName(string tempName){ int index=tempName.find_last_of('\\'); //属于文件路径 if(index>=0) { tempName=tempName.substr(index+1); } int length=tempName.length(); if(length>16) { tempName=tempName.substr(length-16); } return tempName;}int main(){ //存储错误文件的记录 vector<ERRNODE> v; vector<ERRNODE> ::iterator pos; v.clear(); //存储临时输入的错误记录信息 string tempName; int tempLine; //存储分离的文件名 string fileName; while(cin>>tempName>>tempLine) { fileName=getFileName(tempName); ERRNODE errnode(fileName,tempLine); //V集合为空直接插入即可 if(v.size()==0) { v.push_back(errnode); } else { pos=find(v.begin(),v.end(),errnode); if(pos==v.end()) { v.push_back(errnode); } else { pos->count++; } } } int index=v.size()-8; if(index>=0)//数据>>=8条,只输出最后8条 { for(; index<v.size(); index++) cout<<v[index].fileName<<" "<<v[index].fileLine<<" "<<v[index].count<<endl; } else//记录小于8条全部输出 { for(index=0; index<v.size(); index++) cout<<v[index].fileName<<" "<<v[index].fileLine<<" "<<v[index].count<<endl; } return 0;}
0 0
- 华为OJ——简单错误记录
- 华为oj 简单错误记录
- 【华为OJ】简单错误记录
- 华为OJ-------简单错误记录
- 华为OJ(简单错误记录)
- 【华为OJ】【069-简单错误记录】
- 【华为OJ】简单错误记录【未完成】
- 华为oj中级 简单错误记录
- 华为OJ-简单错误记录模块
- 【华为】简单错误记录
- 华为机试题——简单错误记录
- 华为OJ 简单错误记录 (错误,不知道为什么,求大神指教)
- 【华为OJ19】简单错误记录
- 华为-简单错误记录-Java
- 华为OJ——简单密码
- 华为OJ——简单密码
- [华为机试题]简单错误记录
- 华为机试-简单错误记录
- 华为OJ——坐标移动
- 串口通信数据位长度对传输数据的影响
- Java注解
- JavaScript库
- linux 安装tomat
- 华为OJ——简单错误记录
- 每天一点python——缺失值处理
- 升级Xcode之后VVDocumenter-Xcode不能用的解决办法
- 数据结构之堆和栈
- [C++STL]算法<algorithm>中各种算法解析
- MLE,MAP和Bayes参数估计的区别
- js学习笔记(闭包)
- ChemDraw Prime 15绘制氧化锡的技巧
- 华为OJ——密码验证合格程序