在 C 中检查命令行参数

标签 c if-statement input cmd

我试图从 C 的 cmd 行中获取 2 个参数。第二个数字不能高于 100。但是,当使用 23 405 运行程序时,它执行时没有任何错误。

int main(int argc, char * argv[]){
    char *inputs;
    int input1= strtol(argv[1], &inputs, 10);
    int input2= strtol(argv[2], &inputs, 10);

   if ((*inputs!='\0') || (argc < 3) || (input1 > 1) || (input2 >= 100) 
   || (input1 >= input2))
   {
   printf("Error.");
   return 1}
  return 0;
}

我是 C 语言的新手,非常感谢任何帮助!

最佳答案

  1. 在使用argv[2] 之前应确保argc >= 3
  2. return 1} 应该是 return 1;}

以下代码可以工作:

#include<stdio.h>

int main(int argc, char * argv[]) {
    if (argc < 3) {
        perror("Error");
        return 1;
    } 

    char *inputs1;
    char *inputs2;

    int input1= strtol(argv[1], &inputs1, 10);
    int input2= strtol(argv[2], &inputs2, 10);

    if (*inputs1!='\0' || *inputs2 != '\0' || input1 > 1 || input2 >= 100 || input1 >= input2) {
        printf("Error.");
        return 1;
    }
    return 0;
}

关于在 C 中检查命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53228147/

相关文章:

c - 使用 fread 从 Matlab 读取所有字符到嵌入式设备

c - 运行示例 ArduinoJson 时出错

Python 'if' 语句 - if in [string] == 'string' - 不起作用?

javascript - 如何将输入类型 "number"限制为2的幂?

sql - 用户输入作为 Oracle SQL 中的日期

c++ - 服务器支持多个客户端监听吗?

c - 使用 pthreads 在客户端-服务器设置中终止客户端线程

if-statement - Stata 中的条件 if 和编程 if

if-statement - 如何读取脚本中不规则编号的数据文件来制作gnuplot图像?

c - 如何在 C 中监听用户输入的同时运行程序?