你好,我刚好学到这个地方 我发现文字的十六进制数会比数字和符号的十六进制数要大(文字>0x7f) 可以根据这个进行判断,若ch>0x7f则用fseek再往前进1,然后顺序输出两个ch(一个ch占两字节,顺序输出两个ch就是4个字节=一个文字) 下边是我的代码:你可以参考一下 #include"stdio.h" #define CNTL_Z '0\32' int main() { FILE *ptf_r; FILE *ptf_w; char name[40]; char name2[40]; char ch; char ch2; int i; long sum;
puts("please enter the file to process"); gets(name); if((ptf_r=fopen(name,"rb"))==NULL) puts("the file have nothing to process"); fseek(ptf_r,0L,SEEK_END); sum=ftell(ptf_r); for(i=1;i<=sum;i++)//输出数字字母