程序忽略`if(argc!= 2)`语句

时间:2018-01-10 19:46:47

标签: c cs50

我正在从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语句。

为什么?我该如何解决?

1 个答案:

答案 0 :(得分:5)

很确定你忘记了命令本身是shell中的一个args。换句话说:

> myprog myparam myotherparam

有argc == 3因为myprog是arg [0]