gpt4 book ai didi

c - 如何将以0开头的数字字符串转换为八进制数

转载 作者:太空狗 更新时间:2023-10-29 15:23:29 25 4
gpt4 key购买 nike

我正在尝试这样做:

void main(int argc, char *argv[]){
int mode,f;

mode = atoi(argv[2]);

if((f = open("fichero.txt",O_CREAT, mode))==-1){
perror("Error");
exit(1);
}

}

但是,当我引入像 0664 这样的数字时,众数等于 664。我怎样才能保持前导零?

最佳答案

atoi 函数假定字符串是数字的十进制表示。如果你想从不同的基地转换,使用 strtol

mode = strtol(argv[2], NULL, 0);

第三个参数指定基数。如果此值为 0,则以 0x 开头的字符串将被视为十六进制字符串,以 0 开头的字符串将被视为八进制字符串,否则将其视为十进制字符串。

如果您希望字符串始终为八进制表示,则将基数设置为 8。

mode = strtol(argv[2], NULL, 8);

关于c - 如何将以0开头的数字字符串转换为八进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269776/

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