如何读取文件的ascii码?

congliu 2004-07-29 04:46:04
例如:用winhex打开文件,得到内容是4c 55。请问如何在c++中读取4c 55????
谢谢
...全文
480 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
antijpn 2004-07-29
  • 打赏
  • 举报
回复
怎么可能呢?ASCII的4c还是整型的4c,连转换都不需要,直接赋值给int完全是可以的

就算你不想转换
printf("%x",ch);也可以让它输出为十六进制的数值
congliu 2004-07-29
  • 打赏
  • 举报
回复
已经解决了,谢谢大侠们
congliu 2004-07-29
  • 打赏
  • 举报
回复
请问antijpn(antijpn) :按照你的方法,只能读到被视为ascii码的“4c”,而不能读出16进制的“4c”,请指点,谢谢
antijpn 2004-07-29
  • 打赏
  • 举报
回复
extern unsigned char buffer[];
extern int iarray[];
extern size_t USize;
extern size_t UCount;
FILE* fp=fopen("file","rb");
int ByteRead=fread(buffer,USize,UCount,fp);
for(int i=0;i<ByteRead;i++)
iarray[i]=buffer[i];

这样就可以了,iarray里面就是你需要的数值,只不过输出的时候需要指定十六进制的输出才行
congliu 2004-07-29
  • 打赏
  • 举报
回复
不是这样赋值,是从文件中读取16进制4c到int变量
improgrammer 2004-07-29
  • 打赏
  • 举报
回复
把4C赋给int变量吗?你看:
int v=0x4c;
junguo 2004-07-29
  • 打赏
  • 举报
回复
其实文件中的内容只是一种格式,说到底都是0,1。对于一个字节,你直接转换就好了!
congliu 2004-07-29
  • 打赏
  • 举报
回复
请问improgrammer(无忌),如何用把4c赋值到int对象中??????
antijpn 2004-07-29
  • 打赏
  • 举报
回复
unsigned char[]里面存放的就是你读取得数值,需要使用的时候可以采用printf或者其他格式输出函数输出
junguo 2004-07-29
  • 打赏
  • 举报
回复
其实winhex的原理是把文件打开,然后按字节把文件转化成16进制数,再显示在页面上。
c++当然可以!
建议看看汇编的资料,能更好理解这个问题!
improgrammer 2004-07-29
  • 打赏
  • 举报
回复
读取的是字节,4C 55 之类只是显示的问题。你把读得的每个字节以HEX码形式显示出来,并且按8个字节一组,每个字节固定宽度2个字符,每行列出16个字节的HEX码,就得到了WINHEX的模样。
void disp(FILE *fp)
{
int ch;
int i=0;
while((ch=fgetc(fp))!=EOF)
{
printf("%02X",ch);
++i;
if((i & 0xF)==0)
printf("\n");
else if((i & 0x7)==0)
printf(" ");
}
}
antijpn 2004-07-29
  • 打赏
  • 举报
回复
打开文件的时候加入b参数
譬如这样
FILE *fp=fopen("file","br");
然后使用fread读取到一个unsigned char[]就可以了,小心不要读太多,会越界的

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧