结构体的使用
来源:互联网 发布:韩国网络电视成人直播 编辑:程序博客网 时间:2024/05/18 03:45
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:
1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)
2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)
3.输入的文件可能带路径,记录文件名称不能带路径
#include<iostream>#include<string>#include<algorithm> using namespace std; struct Record {//这里声明了一个记录的结构体,其中有三项 文件名,错误行号及错误数目 string filename; int column; int count;};Record rec[10];//这个结构体数组大小为10 string getFileName(string str){ int pos = str.rfind('\\');//找到‘\’位置,rfind反向查找,有篇博文专门说明了find的使用方法可以查一下 return str.substr(pos + 1);} bool cmp(Record r1, Record r2){//降序排列 return r1.count > r2.count;} int main(){ string inStr; int col; char tmp[100]; int sum = 0; while((scanf("%s%d", tmp, &col)) != EOF){ //读取str到char数组和int对象中// cout << endl << tmp << endl << col << endl; //输出原始数据 bool flag = false; // 这里是**标志位 inStr = tmp; inStr = getFileName(inStr);//获取文件名,此处的文件名为‘\’之后所有的文件名,并未删减超过16位的,返回值是string格式 for(int i = 0; i < sum; i++){ if(rec[i].filename == inStr && rec[i].column == col){//文件名相同且行号相同,计数+1 rec[i].count++; flag = true;//有相同的 } } if(!flag && sum<9){//如果没有相同的存储数据 rec[sum].filename = inStr; rec[sum].column = col; rec[sum].count = 1; sum++; } } sort(rec, rec + sum, cmp);//0-sum排序 for(int i = 0; i < min(8, sum); i++){//判断存储数目小于8 if(rec[i].filename.length() <= 16){//判断文件名是否大于16个字符,小于直接输出 cout << rec[i].filename; } else{ cout << rec[i].filename.substr(rec[i].filename.length() - 16);//else输出后16位 } cout << " " << rec[i].column << " " << rec[i].count << endl; } return 0;}
这道题先建立一个struct之后用来存储所需要的文件名,行号及出现次数,大小为10
在main函数前声明并且规定大小就已经为该struct开辟存储空间,之后可以直接使用
rec[i].filename.length() 返回结构体中string的长度
sort(rec, rec + sum, cmp) 可以对结构体排序
substr (字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
阅读全文
0 0
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用
- 结构体的使用概述
- 结构体、qsort的使用
- 结构体、sort的使用
- timeval结构体的使用
- 变长结构体的使用
- 结构体类型的使用
- 结构体指针的使用
- C 结构体的使用
- [pattest]1067. 试密码(20)
- 知历史,才可图未来 ——新书《未来简史》解读
- IO流复制多级文件
- 【Component】关于Ionic中的Component
- HDU-2017 多校训练赛9-1010-Two strings
- 结构体的使用
- 职业生涯系列
- 图的基本存储的基本方式一
- 数组中出现次数超过一半的数字
- hdu--6153(A Secret)
- [转]写给Krpano小白们的最最最入门级教程(二)
- 【容斥原理】Codeforces547C[Mike and Foam]题解
- 8.22最短路径讲解
- spark(5)--spark模型中FIFO的实现