我正在学习 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/