c# 从命令提示符阅读

2vuwiymt  于 2023-01-03  发布在  C#
关注(0)|答案(3)|浏览(241)

我只是试图从命令提示符获取输入,并希望将输入转换为整数。

#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);
    
   
}
f0brbegy

f0brbegy1#

  • if(atoi(argv)==0)中,你可能想检查用户在命令行中给出了多少参数,这就是argc的作用。
  • num = atoi(argv);应为num = atoi(argv[1]);
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
    int num;
    
    if (argc < 2) {                          // no argument given on cmdline
        printf("Enter the number : ");
        if (scanf("%d", &num) != 1) {        // check that scanf succeeds
            puts("Failed reading a number");
            return 1;
        }
    } else {
        num = atoi(argv[1]);                 // dereferencing the second element
    }
    printf("num=%d\n", num);
}
sg24os4d

sg24os4d2#

在调用atoi之前检查命令行参数的数量是否正确。如果不正确,则抛出错误并返回。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    if (argc != 2)
    {
        printf("Usage: %s <number>\n", argv[0]);
        return -1;
    }

    int num = atoi(argv[1]);
    printf("num = %d\n", num);
}
8ftvxx2r

8ftvxx2r3#

argv是一个指针。argv[i]是一个字符串。argv[0]将是程序名,因此argv[1]之后是cmd行参数。

int main(int argc, char **argv)    
{   
    int num;
    if(argc<2)  /* user has not provided any cmd line args */
    {
        printf("Enter the number : ");
        scanf("%d",&num);
    }
    else
    {
        num = atoi(argv[1]);
    }
    printf("Number = %d\n",num);
}

相关问题