m0_58545591 2021-05-24 11:02 采纳率: 50%
浏览 86
已采纳

代码主函数任意字节出现次数

将所有代码写在主函数中:打开一个任意类型的文件,统计每种字节(0 - 255)的出现次数,按字节值从小到大的顺序,输出出现次数大于0的字节值及对应的出现次数。

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-05-24 11:33
    关注

    代码如下,如有帮助,请采纳一下,谢谢。

    #include <stdio.h>
    #include <map>
    using namespace std;
    int main()
    {
    	FILE *fp =NULL;
    	long n = 0;
    	if ((fp = fopen("Q.txt","r")) == NULL)
    	{
    		printf("文件打开失败。\n");
    		return 0;
    	}
    	fseek(fp,0,SEEK_END);   //指针:移动到文件尾部
    	n = ftell(fp);   //返回指针偏离文件头的位置(即文件中字符个数)
    	
    
    	rewind(fp);
    
    	char *buf = new char[n+1];
    	n = fread(buf, 1, n, fp);
    	
    	fclose(fp);
    
    
    	map<char,long> mapInfo;
    	map<char,long>::iterator it ;// mapInfo;
    	for (int i = 0; i < n; i++)
    	{
    		it = mapInfo.find(buf[i]);
    		if (it == mapInfo.end())
    		{
    			mapInfo.insert(pair<char,long>(buf[i],1));
    		}else
    		{
    			long ll = it->second;
    			ll += 1;
    			mapInfo.erase(it);
    			mapInfo.insert(pair<char,long>(buf[i],ll));
    		}
    	}
    	//dayin
    	for (it = mapInfo.begin(); it != mapInfo.end(); it++)
    	{
    		printf("%d:%ld\n",it->first,it->second);
    	}
    
    	getchar();
    	getchar();
    	return 0;
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算