我试图从 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 语言的新手,非常感谢任何帮助!
最佳答案
- 在使用
argv[2]
之前应确保argc >= 3
- 行
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/