程序忽略 `if ( argc != 2)` 语句
Program ignores `if ( argc != 2)` statement
我正在做 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 语句。
这是为什么?我该如何解决?
很确定您忘记了命令本身算作 shell 中的参数之一。换句话说:
> myprog myparam myotherparam
有 argc == 3 因为 myprog 是 arg[0]
我正在做 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 语句。
这是为什么?我该如何解决?
很确定您忘记了命令本身算作 shell 中的参数之一。换句话说:
> myprog myparam myotherparam
有 argc == 3 因为 myprog 是 arg[0]