dxt_1515
2017-08-20 09:42
采纳率: 50%
浏览 3.6k
已采纳

C语言中,如何将读取的16进制txt文件转化为10进制数组?

我读取到的的16进制数 0, 0, 6b6, 6a5, 695, 685, 67e, 663, 662, 652, 648, 640, 62e, 628, 616, 612, 604, 5f7, 5ed, 5df,是这样的600个数据,我写的代码如下,可为什么转化的是错的,请大神们帮忙看一下。
#include
#include
#include
#include
#include
#define N 600

int main()

{

char szTest[1000] = {0};

int len = 0;  

FILE *fp = fopen("data25.txt", "r");  

if(NULL == fp)  
{  
    printf("failed to open dos.txt\n");  
    return 1;  
}  

while(!feof(fp))  
{  
    memset(szTest, 0, sizeof(szTest));  
    fgets(szTest, sizeof(szTest) - 1, fp); // 包含了\n  
    int t=strlen(szTest);
    long sum=0;

    for(int i=0;i<t;i++){

    if(szTest[i]>='a' && szTest[i]<='z')
    szTest[i]=int(szTest[i]-'a')+10+'0';
    sum+=((szTest[i]-'0')*(pow(16,t-1-i)));
    sum1[]=sum;
    }
  printf("%ld\n",sum);
}


fclose(fp);  
printf("\n");  
return 0;  

}

/*unsigned convert(char szTest[]) {
unsigned i,num = 0;
for(i = 0;szTest[i];++i) {
szTest[i] = toupper(szTest[i]); //* 小写字母转换成大写,其他字符不变 *
if(isalpha(szTest[i])) num += 16 * num + szTest[i] - 'A';
else num += 16 * num + szTest[i] - '0';
}
return num;
}
*/

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题