【问题标题】:Check if there are more than 1 argument检查是否有超过 1 个参数
【发布时间】:2015-10-15 12:38:09
【问题描述】:

我有一个使用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]);
    }

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

【问题讨论】:

    标签: c if-statement arguments command-line-arguments


    【解决方案1】:

    你应该检查argc != 2而不是argc &lt; 2

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

    【讨论】:

    • 谢谢。请注意我的愚蠢问题,但是当我们说 argc != 2 时,我们实际上在说什么伪代码?
    • 表示“如果参数的数量不是 2”,请记住可执行文件算作第一个参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多