我正在从CS50课程中解决问题,在这个问题中argc
需要是2.我做了这个:
#include <cs50.h>
#include <stdio.h>
int main (int argc, string argv [])
{
if ( argc != 2){
printf ("Retry\n");
return 1;
} else {
int x = atoi(argv [1]);
string a = get_string ("Enter plaintext: ");
printf ("%s", a);
printf ("%d", x);
}
}
但即使argc
不同于2,它也会忽略if语句并转到else语句。
为什么?我该如何解决?
答案 0 :(得分:5)
很确定你忘记了命令本身是shell中的一个args。换句话说:
> myprog myparam myotherparam
有argc == 3因为myprog是arg [0]