我希望用户传递两个参数或将其留空。例如:
./program 50 50
或者
./program
当我尝试使用int main(int argc, char *argv[])
时,我所做的第一件事就是更改char *argv[]
为,int *argv[]
但它不起作用。我想要的是用户只是输入 0 和 100 之间的两个整数。所以如果它不是两个整数,那么它应该给出一个错误。
我有点想给出一个类型错误(就像我以前在 C# 上编程的那样),但无论我输入什么,argv[1] 都会一直是 'char' 类型。
所以我所做的是
for (int i = 0; i <= 100; i++) {
//printf("%d", i);
if (argv[1] == i) {
argcheck++;
printf("1st one %d\n", i);
}
else if (argv[2] == i) {
argcheck++;
printf("2nd one %d\n", i);
}
这也不起作用。它在编译时也会发出警告,但如果我改变例如,那么它会给出一个argv
分段错误(核心转储)错误。atoi(argv[1])
我需要一个简单的方法来解决这个问题。
编辑:
所以我修复了atoi()
它,它给出分段错误的原因是因为我在没有参数的情况下尝试使用空值。所以我通过添加一个额外的条件来修复它。但现在的问题是,如果值是让我们说
./program asd asd
那么 的输出atoi(argv[1])
将为 0。有没有办法改变这个值?