📄 b62.c
字号:
/*参考答案*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define MAX 100
char xx[MAX][20] ;
void WriteDat(void) ;
int ReadDat(void)
{
FILE *fp ;
int i,j;
char c;
if((fp = fopen("HEX.IN", "r")) == NULL) return 1 ;
/***********读入数据并存放到数组xx中*************/
for(i = 0; i < MAX; i++)
{
j = 0;
while((c = (char) fgetc(fp)) != EOF)
{
if(c == ',')
{
xx[i][j] = '\0';
break;
}
else if(c != '\n' && c != '\r')/*去掉回车换行符*/
{
if(!isdigit(c))/*如果是字母,则转换为大写*/
c &= 0xdf;
xx[i][j] = c;
++j;
}
}
if(c == EOF)
break;
}
fclose(fp) ;
return 0 ;
}
void H16To8(void)
{
int i,j,val;
for(i = 0; i < MAX; i++)
{
val = 0;
j = 0;
while(xx[i][j])
{
val *= 16;
val += isdigit(xx[i][j]) ? (xx[i][j] - 48) : (xx[i][j] - 55);
j++;
}
itoa(val,xx[i],8);
}
}
void main()
{
int i ;
for(i = 0 ; i < MAX ; i++) memset(xx[i], 0, 20) ;
if(ReadDat()) {
printf("数据文件HEX.IN不能打开!\007\n") ;
return ;
}
H16To8() ;
WriteDat() ;
}
void WriteDat(void)
{
FILE *fp ;
int i ;
fp = fopen("OCK.OUT", "w") ;
for(i = 0 ; i < MAX ; i++) fprintf(fp, "%s\n", xx[i]) ;
fclose(fp) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -