【发布时间】:2020-02-14 20:27:52
【问题描述】:
我正在将文件中存储的所有二进制数转换为十六进制。该文件通过命令行参数进行解析,但要将其转换为十六进制,我希望将其转换为整数,即接收到的字符串的文字整数,atoi() 似乎不起作用。
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main ( int argc, char *argv[] )
{
FILE *fp,*op;
fp = fopen(argv[1],"r");
op= fopen(argv[2],"w+");
if( fp == NULL)
{
perror("An error has occurred\n");
exit(1);
}
char buff[1026];
unsigned char hexstr[1024];
unsigned long int hexnum,hexint;
unsigned char four[4];
int i, j,len;
while(fgets(buff, sizeof(buff), fp))
{
printf("\nString value = %s", buff);
hexint=atoi(buff);
printf("%ld",hexint);
}
fclose(fp);
fclose(op);
return 0;
}
输入文件包含:
0000000000001010
1010000000000000
101010111100110111101111
000100100011010001010110
000100010001000100010001
011101110111011101110111
000000000000000000000000
输出文件应包含:
000a
a000
abcdef
123456
111111
777777
000000
【问题讨论】:
-
输入文件的内容是什么?输出文件中有什么,应该包含什么?
-
输入文件包含多个二进制数,每个都在不同的行中,输出文件应该包含十六进制我应该很好地进行转换,但我无法将字符串转换为其文字整数等价于数字操作。
-
不要描述输入/输出,显示它。
-
Input file contains 0000000000001010 1010000000000000 101010111100110111101111 000100100011010001010110 000100010001000100010001 011101110111011101110111 000000000000000000000000 o/p file should contain: 000a a000 abcdef 123456 111111 777777 000000
-
@rohithp 你能把输出文件的内容放在代码下面吗?
标签: c