
因为一些原因,产生了一些二进制数据,需要将其转换成为十六进制数据使用。考虑到正在学习C,所以试着用C语言的文件读写来完成这项工作。
程序#includeint two_trans_hex(char * byte) { int i, j, k; i = j = k = 0; for(i = 0; i < 9; i ++) { if(byte[i] != 'n') { j = byte[i] - '0'; printf("%dn", j); k = k * 2 + j; } } printf("t"); return k; } int main(void) { FILE *fp1, *fp2; int num = 0; char string[9] = {0}; fp1 = fopen("D:\file.txt", "r+"); fp2 = fopen("D:\file_hex.txt", "w+"); while(fscanf(fp1, "%9c", string) != EOF) { num = two_trans_hex(string); printf("%xn", num); fprintf(fp2, "%xn", num); } fclose(fp1); fclose(fp2); return 0; }
目标文件中八位二进制数据为一行,读取八个字符可以满足要求;但是fprintf()函数在执行的时候,遇到空格结束读取,而换行符是会被读取的,所以选择读取9个字符,并在转换程序中将换行符滤去。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)