第15周【项目2-二进制文件浏览器】

问题描述:

(1)做一个类似BinaryViewer的查看二进制文件的程序,输入文件名后,可以以16进制和ASCII对照的方式列出该文件的内容,可以参考下图:

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

代码实现:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <fstream>
#include <iomanip>
using namespace std;
int main(){
    printf("请输入文件名:");
    char t[20];
    string s;
    cin>>t;
    ifstream myfile(t,ios::in|ios::binary);
    if(!myfile){
        cerr<<"open error!\n";
        exit(1);
    }
    /*while(!myfile.eof()){
        getline(myfile,s);
        cout<<s<<'\12';
    }*/
    while(!myfile.eof()){
        getline(myfile,s);
        if(!myfile.eof()){
            for(int i=0; s[i]!='\0'; ++i)
            cout<<setfill('0')<<setw(2)<<hex<<int((unsigned char)(s[i]))<<" ";
            cout<<'\t';
            for(int i=0; s[i]!='\0';++i)
                cout<<(s[i]?s[i]:'.');
            cout<<endl;
        }
    }
    myfile.close();
    return 0;
}

运行结果:

时间: 2024-10-12 22:23:24

第15周【项目2-二进制文件浏览器】的相关文章

第15周 程序阅读-二进制文件及文件的读取4

4.阅读并运行下面的示例,体会二进制文件和字符串流操作的一般方法. 例17 #include <strstream> #include<iostream> using namespace std; struct student {     int num;     char name[20];     float score; }; int main( ) {     student stud[3]={1001,"Li",78,1002,"Wang&q

第15周 程序阅读-二进制文件及文件的读取1

1.阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法).查看其内容,并理解文件存储的原理. (1) #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main( ) { int a; ofstream outfile("f1.dat",io

15周【项目1-用二进制文件处理学生成绩】

问题描述: [项目1-用二进制文件处理学生成绩] (1)定义学生类,其中包含学号.姓名.C++课.高数和英语成绩及总分数据成员,成员函数根据需要确定. (2)读入学生的成绩,并求出总分,用对象数组进行存储.ASCII文件score.dat中保存的是100名学生的学号.姓名和C++课.高数和英语成绩. (3)将所有数据保存到一个二进制文件binary_score.dat中,最后通过键盘输入你的信息,并写入到文件中(咱不谦虚,三科全100分,期末求好运). (4)为验证输出文件正确,再将binary

学习进度条十四(第15周)

  第15周 所花时间 31h 代码量 471行 博客量 13篇 了解到的知识点 1.利用javaFX做java内置浏览器. 2.javaFX需要调用Launch()方法开启javaFX中所有用到的线程. 3.登录界面记住用户,密码,实现自动登录. 4.table表的实时刷新. 5.将软件打包封装成jar文件,然后通过文件转换器将jar文件转换成exe可执行文件.

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

[项目-二进制文件浏览器] (1)做一个相似BinaryViewer的查看二进制文件的程序.输入文件名称后,能够以16进制和ASCII对比的方式列出该文件的内容.能够參考下图: 提示:循环中,一次读入16个字节,先用16进制形式输出,再用字符形式输出. [參考解答] #include<iostream> #include<iomanip> #include <fstream> #include<cstdlib> using namespace std; in

16周(项目四 动态数组)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:16周(项目四 动态数组) *作者:王忠 *完成日期:2014.12.15 *版本号:v1.0 * *问题描述:新增一个恰当长度的动态数组,将原数组中的数据"复制"到新数组,接着再输入新的数据.增加新数据后的数组,成为保存数据的新数组. *输入描述:输入成绩,学生数 *程序输出:新增的学生数 成绩 #include <iostream> using nam

体育馆团体预约系统UML软件工程第16周项目日志

体育馆团体预约系统 UML软件工程项目日志 June,14th ,2019 目录 一. 博客地址 1 二. 客户提交内容 1 三. 项目背景 2 四. 项目范围和前景 2 五. 沟通记录 3 六. 甲方确认结果: 6 七. 结构化需求分析概述 6 八. 涉众分析 7 九. 硬数据采样及数据分析 8 十. 过程建模 8 十一. 数据建模 9 十二. 预约系统用例分析 10 十三. 工作计划 12 十四. 本周工作日志 13 十五. 项目总进展 13 一.博客地址 https://www.cnblo

HeyWeGo第五周项目总结

HeyWeGo第五周项目总结 项目内容 使用java程序开发一款扫雷游戏 游戏项目规划: 确定游戏中方块格子的个数 确定游戏中地雷的个数(初始10个),完成布雷 计算每个方块周围的雷数,在方块周围本身没有地雷的情况下,统计周围地雷的个数 若周围没有地雷则翻开周围的空白方格,直到周围有附近地雷的格子 设计一个检测是否挖完所有的雷的方法 设定左键点击为翻开 设定右键点开为标记 项目进展 整合并调试修改各队员分段编写的代码,游戏已实现,已经修补上周不能右键标记部分. 完整代码 import java.

12周 项目4

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP

第十一周项目1

#include <iostream> using namespace std; class Stu { public: Stu (int n,string nam); void display(); protected: int num; //学号 string name; //姓名 }; Stu::Stu(int n,string nam ) { num=n; name=nam; } void Stu::display() { cout<<"学号:"<