问题描述:
(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