C++实践參考——二进制文件浏览器

【项目-二进制文件浏览器】

(1)做一个相似BinaryViewer的查看二进制文件的程序。输入文件名称后,能够以16进制和ASCII对比的方式列出该文件的内容。能够參考下图:

提示:循环中,一次读入16个字节,先用16进制形式输出,再用字符形式输出。

[參考解答]

#include<iostream>
#include<iomanip>
#include <fstream>
#include<cstdlib>
using namespace std;

int main( )
{
    char c[16];
    char f[100];
    cout<<"请输入文件名称:";
    cin>>f;
    ifstream infile(f,ios::in|ios::binary);
    if(!infile)
    {
        cerr<<"open error!";
        exit(1);
    }
    while(!infile.eof())
    {
        infile.read(c,16);
        if(!infile.eof())
        {
            for(int i=0; i<16; ++i)
                cout<<setfill(‘0‘)<<setw(2)<<hex<<int((unsigned char)(c[i]))<<" ";
            cout<<‘\t‘;
            for(int i=0; i<16; ++i)
                cout<<(c[i]?c[i]:‘.‘);
            cout<<endl;
        }
    }

    return 0;
}

(2)通过为main函数加參数,在命令行方式下,输入“命令加文件名称”的方式。就能够显示该文件的内容。也採用如上16进制和ASCII对比的形式。

[參考解答]请參考在命令行中加參数的文件复制程序

时间: 2024-10-12 20:01:29

C++实践參考——二进制文件浏览器的相关文章

《C++语言基础》实践參考——数组作数据成员

返回:贺老师课程教学链接 [项目5 - 数组作数据成员]阅读教材P255例8.4.注意到类中的数据成员能够是数组.设计一个工资类(Salary),当中类的数据成员例如以下: class Salary { private: double salarys[50]; //多人的工资 int number; //实际人数 }; 要设计的成员函数有: void set_salarys( ):输入职工工资(输入-1标志着工资输入结束).工资保存到salary数组中,实际人数保存到number中. void

HTML5 界面元素 Canvas 參考手冊

太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. HTML5 界面元素 Canvas 參考手冊HTML Canvas Reference 描写叙述Description The HTML5 <

计算机网络11--OSI參考模型

本页内容 1.OSI參考模型简单介绍 2.OSI參考模型通信过程 3.OSI參考模型的数据封装 4.数据封装的意义 5.物理层 6.数据链路层 7.网络层 8.传输层 9.会话层 10.表示层 11.应用层 1.OSI參考模型简单介绍 OSI=Open System Interconnection=开放系统互连 来历:是由国际标准化组织(ISO=International Organization for Standardization)于1984年提出的分层网络体系结构模型. 目的:它的作用是

Windows8.1和Ubuntu14.04双系统卸载Ubuntu參考教程[图]

我之前编写并公布了<Windows8.1安装Ubuntu14.04双系统參考教程及双硬盘注意事项>这篇教程,而本文提供的卸载Ubuntu方法适用于这篇教程,其它方法安装的Ubuntu可适当做參考.但本人建议您先大致通读本文,再做决定. 本文所述方法,个人測试无误,如因本文所述造成不论什么损失,本人无法负责,请谨慎! 如若转载,请注明博文地址及原作者(RisingWonderland). 准备条件 请再次确认对Ubuntu系统做好文件备份: 本文适用于Win7.Win8.1: Windows操作

[Java] 实验5參考代码

实验4月3日晚截止,实验截止后将在此给出完整的參考代码. 1. 怎样使用以下的代码模板: 1.1 在eclipse中创建相应名称的类     1.2 将代码拷贝到类文件中 1.3 在//todo凝视中输入你用于解题的代码. 1.4 样例:參考第一题"显示两级名字".大家就能够这么做 1.4.1 在eclipse中创建类.名字叫做PassOrFail 1.4.2 将以下的代码拷贝到.java文件里.并删除//todo凝视,開始在while循环里写代码 (推断成绩是否大于60, 输出等)

烟花散尽漫说无(參考资料)

烟花散尽漫说无 --试解李商隐<锦瑟>"沧海月明珠有泪,蓝田日暖玉生烟."句 參考资料 在梳理索解史以及解诗时主要參考了下面资料(清曾经的不列): X<朱自清全集>第二卷 ("<唐诗三百首>指导大概") 朱自清著江苏人民出版社 1988年8月第1版,1990年5月第2刷 <李商隐诗选注>陈伯海 选注 上海古籍出版社 1982年2月第1版/第1刷 <唐诗三百首全译>汉灵娜 译诗 何年 凝视 陈敬容 校订 贵州

HEVC的參考队列解码

參考队列是指在进行帧间解码时.P或者B slice所參考的已解码的.位于解码图像缓存中(DPB, decoded picture buffer)中的图像队列,类似h264中的reflist0和reflist1.涉及到整个DPB的管理和參考帧的选择. 本文中讨论的都是slice为P,B的情况,slice为I类型时,没有參考帧. 1. 短期參考图像參数集 首先介绍一下短期參考图像參数集(Short-term reference picture set ), 简称short-term RPS,储存着有

四旋翼飞行器Quadrotor飞控之 PID调节(參考APM程序)

做四轴也有一段时间了.近期一直在做PID方面的工作. 如今四轴基本能够实现室内比較稳定的飞行,操控手感也能够接受.稍后上试飞视频.在此把一些PID方面的经验总结总结和大家分享一下. 首先介绍一下大概的硬件组成: MCU:Freescale MK60D 传感器(IMU):GY-86模块(MPU6050 + HMC5883L + MS5611) 433MHz传输数据模块 DC-DC可调式开关稳压模块 遥控设备:JR XG7发射机 + JR 611B接收机 机架:普通红白f450机架 电机:朗宇221

学习笔记之TCP/IP协议分层与OSI參考模型

1.协议的分层      ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论, 终于提出了作为通信协议设计指标的OSI參考模型.这一模型将通信协议中必要 的功能分成了7层.通过这些分层,使得那些比較复杂的网络协议更加简单化. 在这一模型中,每一个分层都接收由它下一层所提供的特定服务,而且负责为自己的上一层提供特定的服务.上下层之间进行交互时所遵循的约定叫做"接口".同一层之间的交互所遵循的约定叫做"协议". 协议分层就如同计算机软件中的模块化开发