gpt4 book ai didi

c - 十六进制到十进制的转换

转载 作者:行者123 更新时间:2023-11-30 15:36:51 25 4
gpt4 key购买 nike

第一段代码在输出时将b.txt中的每一行换行打印,第二段代码是十六进制到十进制的转换。我不擅长编写大型程序,因此我将任务拆分并编写较小的程序。我在合并这两个程序时遇到问题。有人可以帮忙吗?

#include <stdio.h>
int main ( int argc, char **argv )
{
FILE *fp = fopen ( "b", "r");
char line[1024];
int ch = getc ( fp );
int index = 0;
while ( ch != EOF ) {
if ( ch != '\n'){
line[index++] = ch;
}else {
line[index] = '\0';
index = 0;
printf ( "%d\n", line );
}
ch = getc ( fp );
}
fclose ( fp );
return 0;
}

这是第二个程序

  #include <stdio.h>
#include <stdlib.h>

int main()
{
unsigned int d;
FILE *fp;
FILE *ptr_file;
fp = fopen("normal_data","r"); // read mode
ptr_file =fopen("normal_decimal", "w");
while(fscanf(fp,"%x", &d) == 1)
{
fprintf(ptr_file, "%d /n", d);
}
while( ( d = fgetc(fp) ) != EOF )
fclose(fp);
return 0;
}

最佳答案

将程序分割成相关的小片段是一种很好的编程习惯。

但是不要到处使用主函数,而是尝试创建完成某些任务的函数并将它们添加到头文件中。

这将使编写、调试和重用代码变得更加容易。

在上面的例子中,将十六进制转换为十进制显然是可以反复使用的东西。

因此,只需创建一个函数int hex_to_dec(char* input);,它接受输入字符串,例如“3b8c”,并将其转换为十进制并返回转换后的值。

您可能还想创建函数void printFile(FILE* fp);,它获取指向文件的指针并将其数据打印到标准输出。

您可以将您创建的这些函数和其他函数添加到诸如 myFunctions.h 之类的头文件中,然后将该文件包含到您需要在其中使用函数的任何程序中。

关于c - 十六进制到十进制的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22414118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com