gpt4 book ai didi

c - 将命令行中输入的十六进制值存储为整数

转载 作者:行者123 更新时间:2023-12-01 12:50:20 26 4
gpt4 key购买 nike

#include<stdio.h>
int main(int argc,char* argv[]){
int hex;
printf("\n argc : %d argv[1] : %s \n",argc,argv[1]);
hex = argv[1];
printf("\n hex : %x \n",hex);
return 0;
}

对/对:

[root@ld]# ./a.out 343ed4

argc : 2 argv[1] : 343ed4

hex : 9e1a4aa8

我想存储从命令行参数中获取的十六进制值并将其存储在整数上。上面的程序在存储十六进制值时给出了与用户给定值不同的结果。也不能使用 atoi,因为它会在数字后删除字母。如何将命令行参数中输入的十六进制存储为整数。

最佳答案

这是不正确的:

hex = argv[1];

编译器应该警告你关于分配 char*int ,因为 argv[1]是十六进制数的字符串表示形式(即 {'3','4','3','e','d','4','\0'} ),而不是十六进制数本身。

你需要这样做:

sscanf(argv[1], "%x", &hex);

sscanf为您解析十六进制数,并将结果存储在 hex 中.

关于c - 将命令行中输入的十六进制值存储为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689240/

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