我只是试图从命令提示符获取输入,并希望将输入转换为整数。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int num;
if(atoi(argv)==0)
{
printf("Enter the number : ");
scanf("%d",&num);
}
else
{
num = atoi(argv);
}
}
以上就是我所尝试的,我不知道哪里做错了。
对于下面的代码,我得到的错误如图所示。我想运行它的方式一样,从命令提示符,如果没有从命令提示符输入的值必须在程序运行时提取。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int num_of_values,sum = 0;
int i;
float avg;
if(atoi(argv[1])==0)
{
printf("Enter the number of values: ");
scanf("%d",&num_of_values);
int* sum_arr = malloc(num_of_values*sizeof(int));
printf("Enter the values: ");
for(i=0;i<num_of_values;i++)
{
scanf("%d",&sum_arr[i]);
sum+=sum_arr[i];
}
}
else
{
for (i = 2; i<=argc; i++) {
sum+=atoi(argv[i-1]);
}
num_of_values = i-2;
}
avg = sum / num_of_values;
printf("Sum and Average is %d and %f", sum,avg);
}
3条答案
按热度按时间f0brbegy1#
if(atoi(argv)==0)
中,你可能想检查用户在命令行中给出了多少参数,这就是argc
的作用。num = atoi(argv);
应为num = atoi(argv[1]);
sg24os4d2#
在调用
atoi
之前检查命令行参数的数量是否正确。如果不正确,则抛出错误并返回。8ftvxx2r3#
argv是一个指针。argv[i]是一个字符串。argv[0]将是程序名,因此argv[1]之后是cmd行参数。