检查是否有超过 1 个参数

Check if there are more than 1 argument

我有一个使用 Caesar Cipher.

加密消息的简单程序

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

如果您在终端中输入超过 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]);
    }

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

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

此外,不要费心检查 argv[0],因为它代表 运行.

的可执行文件的名称