C 检查是否有多个参数

C 检查是否有多个参数,c,if-statement,arguments,command-line-arguments,C,If Statement,Arguments,Command Line Arguments,我有一个简单的程序,可以使用Caesar密码对消息进行加密 程序运行良好,但我无法检查用户是否输入了多个参数。如果他是,我需要打断并提示用户输入正确数量的参数,即1 若您在终端中输入了多个参数,比如说/caesar 13 56 hello,它仍然可以工作,但不应该工作 int main(int argc, string argv[]) { int indexKey = 0; string message; if (argc < 2 || atoi(argv[0

我有一个简单的程序,可以使用
Caesar密码对消息进行加密

程序运行良好,但我无法检查用户是否输入了多个参数。如果他是,我需要打断并提示用户输入正确数量的参数,即
1

若您在终端中输入了多个参数,比如说
/caesar 13 56 hello
,它仍然可以工作,但不应该工作

int main(int argc, string argv[])
{
    int indexKey = 0;

    string message; 

    if (argc < 2 || atoi(argv[0]) < 0 || atoi(argv[1]) < 0) {   
        printf("Please enter a non-negative integer as an argument.\n"); 
        return 1; 
    } else {   
        indexKey = atoi(argv[1]);
    }
intmain(intargc,字符串argv[])
{
int indexKey=0;
字符串消息;
如果(argc<2 | | atoi(argv[0])<0 | | atoi(argv[1])<0){
printf(“请输入一个非负整数作为参数。\n”);
返回1;
}否则{
indexKey=atoi(argv[1]);
}

如何防止用户输入过多参数?

您应该检查
argc!=2
而不是
argc<2


另外,不要费心检查
argv[0]
,因为这代表了运行的可执行文件的名称。

谢谢。请记住我愚蠢的问题,但是当我们说
argc!=2
时,我们实际上用伪代码说的是什么?即“如果参数的数量不是2”,记住可执行文件作为第一个参数。