【发布时间】:2015-04-12 15:54:19
【问题描述】:
我正在尝试验证我的程序的用户是否在命令行中输入了一个有效的整数。我遇到了一个问题:它拒绝所有输入。
这就是我所拥有的
// Make sure input is a valid int
char *ptr = NULL;
long int input = strtol(argv[i+1], &ptr, 10);
if(ptr == NULL){
userMinInt = input;
minIntSet = true;
}
else
fprintf(stderr, "You must enter a valid integer for <min-int>. Using default value of %ld\n", minInt);
【问题讨论】:
-
我认为stackoverflow.com/questions/19206660/… 回答了这个问题。
-
@peter 啊,我明白了。所以你不检查 null 你检查 (char)0;
-
i是什么?确保在执行此操作之前检查i + 1 < argc -
@MattMcNabb 这是在 for(int i = 0; i
-
@JayB
argv[argc]始终为空,因此您将在最后一次循环迭代中读取空指针。要解决此问题,请将循环条件设为i + 1 < argc
标签: c string char integer command-line-arguments