gpt4 book ai didi

C 将字符命令行参数转换为整数数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:06 26 4
gpt4 key购买 nike

我是 C 的新手,正在尝试找出数组和命令行参数。我有:

int main(int argc, int **argv) {
int vals[8];
for(int i = 0;i < 8;i = i + 1) {
vals[i] = atoi(argv[i]);
printf("%d", vals[i]);
}
}

我用 ./file 1 2 3 4 5 6 7 8 调用它,我希望它输出 12345678,但相反,它输出 01234567 对我来说,它只是打印数组位置。我如何才能实际打印/访问 vals[i] 的值,和/或确保命令行值实际被正确分配?

提前致谢。

最佳答案

Start with argv[1] 为了排除argv的第一个元素即程序名。一种简单的方法是在程序顶部递增 argv

int main(int argc, char **argv) {
argv++; /* argv[0] is the program name */
int vals[8];
for(int i = 0;i < 8;i = i + 1) {
vals[i] = atoi(argv[i]);
printf("%d", vals[i]);
}
}

附带说明,在访问 argv 中索引 i 的元素之前,您应该检查 argc 的值

关于C 将字符命令行参数转换为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399409/

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