C语言,读取十六进制文件进数组,开始读取正常,后来都是 CD H

C语言,读取十六进制文件进数组,开始读取正常,后来都是 CD H,第1张

1,文件里的数据是不同类型的,既有字符类型的,也有整型的。

2,遇到这种情况,可以按照字符串类型定义数组。例如,char s[100][4]

3,编写程序时,一个一个字符读取,遇到空格就完成了一个数据读取。遇到换行,就换到下一行。

这道题目的关键是把数据类型当作字符串类型处理。

你看下面的程序中,把文本的内容都按照整型数来读取,那么当然有问题!数组s的声明是错误的!

#include <stdio.h>

int main(void)

{

int s

int a,b,c

s=0x781523

a=((0xff<<16)&s)>>16

b=((0xff<<8)&s)>>8

c=((0xff<<0)&s)>>0

printf("0x%x\n",a)

printf("0x%x\n",b)

printf("0x%x\n",c)

}

用 格式 %x 分隔符逗号

fscanf(fin,"%x,%x,%x,", &a[0],&a[1],&a[2])

测定 EOF, 决定结束。

如果最后一个数字后面没有逗号,读最后一个数的格式不加分隔符逗号。

for (i=0i<ni++) fprintf("fout,"%x ",a[i])

---

如果是原样全文复制文件,用 system("COPY a.txt b.txt")即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11795971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存