📄 pe29.c
字号:
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#include "string.h"
#define MAX 64
char xx[MAX][20];
ReadDat()
{FILE *fp;
int i,j;
char ch;
char ss[20];
if((fp = fopen("IN.dat", "r")) == NULL) return 1 ;
printf("\n");
i=j=0;
while(!feof(fp))
{ fscanf(fp,"%c",&ch);
if ((ch>='0'&&ch<='9')||(ch>='a'&&ch<='f')||(ch>='A'&&ch<='F')) {ss[j]=ch;j++;}
else if(ch==','||ch=='\n') {
ss[j]=0;
strcpy(xx[i],ss);
j=0;ss[j]=0;i++;
}
}
ss[j]=0;strcpy(xx[i],ss);i++;
fclose(fp) ;
for(i=0;i<MAX;i++) {if(i%10==0) printf("\n"); printf("%s,",xx[i]);}
return 0 ;
}
H16To2()
{ int value,j,i;
char ss[20];
char s1[5],s2[5];
for(i=0;i<MAX;i++)
{
value=0;
for(j=0;xx[i][j];j++) {
if(xx[i][j]>='0'&&xx[i][j]<='9') value=value*16+xx[i][j]-'0';
if(xx[i][j]>='a'&&xx[i][j]<='f') value=value*16+xx[i][j]-'a'+10;
if(xx[i][j]>='A'&&xx[i][j]<='F') value=value*16+xx[i][j]-'A'+10;
}
if(value==0) {xx[i][0]='0';xx[i][1]=0;}
else if(value==1) {xx[i][0]='1';xx[i][1]=0;}
else {
j=0;
while(value>1)
{
xx[i][j]=value%2+48;
j++;
value/=2;
}
xx[i][j]='1';
xx[i][j+1]=0;
}
}
}
main()
{int i;
for(i=0;i<MAX;i++) memset(xx[i],0,20);
if(ReadDat()) {printf("in.dat open error!\n");return;}
H16To2();
WriteDat();
}
WriteDat()
{FILE *fp;
int i;
fp=fopen("out.dat","w");
for(i=0;i<MAX;i++) {fprintf(fp,"%s\n",xx[i]);printf("%s\n",xx[i]);}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -