将文件input.bin中的数据按字节(无符号数值)统计,输出每个数值在文件中出现的次数
2014-06-23 21:02
435 查看
求:将文件input.bin中的数据按字节(无符号数值)统计,输出每个数值在文件中出现的次数
用了两种方法解答这个问题:一种是读一个就统计一个,采用C语言编写;
#include <stdlib.h> #include <stdio.h> int main() { FILE* f; char c[1]={0}; int i=0; int num[10]={0,0,0,0,0,0,0,0,0,0}; f=fopen("input.bin","r");//打开文件 if(f!=NULL)//判断打开文件是否成功 { while(!feof(f))//判断是否读到文件的末尾 { fread(c,sizeof(char),1,f);//从文件中读取一个字节 num[atoi(c)]++;//将读取到的字节转换成整数,并且将其个数加1 } for(i=0;i<10;i++)//统计结果输出 printf("%d的个数为%d\n",i,num[i]); fclose(f);//关闭打开的文件 } return 0; }
另一种是全部读到容器里然后再分别统计,采用C++语言编写。
#include <iostream> #include <fstream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { vector< char> cf; ifstream in("input.bin"); if (in.is_open()) { string str_output; vector <char>::iterator theIterator; while(getline(in,str_output)) { theIterator = cf.end(); cf.insert(theIterator,str_output.begin(),str_output.end()); } for (int i=0;i<10;i++) { cout<<i<<"的个数为"<<count(cf.begin(),cf.end(),char('0'+i))<<endl; } in.close(); } return 0; }
注:测试的时候input.bin文件可以自己创建一个txt文本文件替换掉
相关文章推荐
- java 读取键盘输入到txt文件,统计每个单词出现的次数并输出
- 从文件读取包含数字和字母字符串,统计每个字符出现的次数,将次数输出到另外一个文件
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出例如: a: 21 次 b: 15 次 c:: 15 次 把: 7 次 当: 9 次 前: 3 次
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法
- 统计输出某个文件中每个单词出现的次数
- 统计文件中每个单词的出现次数
- java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
- 华为机试题---统计并输出每个字符在字符串中出现的次数
- 针对一个文件 统计其中的单词和字符数 找出文件中出现次数最多的单词数 将文件中出现的单词按频率进行排序并输出
- 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
- 统计同一数据在同一文件中出现的次数
- java读取txt文件,并统计每行中每个字母出现的次数,并将产生的数字保存到一个新的txt文件中(有加分)
- 文本分词,并统计分词出现次数,结果输出到文件中
- 统计字符串”abadcdffbaeba”中每个字符出现了多少次,按次数排序并输出
- 统计随机数据组中的相同数值出现的次数
- 一个文本文件中约有10万多行的数据,每个数据占一行(数据为一个整数)。要求:统计出总行数,并找出出现次数最多的那个整数。
- 输入一串字母,统计每个字母的出现的个数并将出现次数最多的字母输出
- 统计一个字符串中每个字符出现的次数,并按自然顺序输出