gpt4 book ai didi

c - argv 读取 C 中不相关的字符

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

我正在学习 C 编程。我的程序读取了与我提供的无关的数字。有什么帮助吗?我哪里不见了?

#include <stdio.h>

main(int argc, char argv[])
{
int i,sum, digit;
if(argc == 1)
{
printf("\n No arguments specified");
return 0;
}
for(i=1;i<argc;i++)
{
digit = argv[i];
printf("Argument is: %d", digit);
//sum += argv[i];
}
printf("The sum of all numbers is: %d", sum);
return 0;
}

子布

最佳答案

你的 main() 是错误的。应该是:

int main(int argc, char *argv[])
^
|
IMPORTANT!

因为参数 vector 是一个字符串指针数组,而不是一个字符数组。

然后,您将参数无效地转换为整数,您需要调用例如strtol()sscanf() 来执行此操作。这种转换是必要的,因为参数作为字符串数组传递给您的程序,并且字符串 "42"(例如)在 C 中与数字 42.

请注意,我提到的两个转换函数都可以检测它们是否失败;例如,如果用户为您的程序提供非数字参数,重要的是要检测到这一点,而不是继续将它们视为数字。

关于c - argv 读取 C 中不相关的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815357/

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