C 命令行arg"^&引用;“产出”;更多;

C 命令行arg"^&引用;“产出”;更多;,c,cmd,C,Cmd,下面是一个简单的代码,它接受一个命令行参数(当然不是程序名),并检查它是否是1到32之间的整数 cmd提示符:cd c:\somefolder cmd提示符:c:\somefolder>gcc-o myCode myCode.c cmd提示符:c:\somefolder>myCode 5 cmd提示符:c:\somefolder>接受您的参数 cmd提示符:c:\somefolder>myCode^ cmd提示:更多 然后它等待另一个输入。我怎么能像检查信件一样检查这个 #include <

下面是一个简单的代码,它接受一个命令行参数(当然不是程序名),并检查它是否是1到32之间的整数

  • cmd提示符:cd c:\somefolder
  • cmd提示符:c:\somefolder>gcc-o myCode myCode.c
  • cmd提示符:c:\somefolder>myCode 5
  • cmd提示符:c:\somefolder>接受您的参数
  • cmd提示符:c:\somefolder>myCode^
  • cmd提示:更多
  • 然后它等待另一个输入。我怎么能像检查信件一样检查这个

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
        if (argc == 1)
        {
            printf("\nPlease enter a cmd-line arg between 1 and 32.\n");
            return 0;
        }
    
        if (argc == 2)
        {
            int x;
            char *ptr;
            long y = strtol(argv[1], &ptr , 10);
            int l = strlen(argv[1]);                
    
            for (x = 0; x <= (l - 1); x++)
            {
    
                if (argv[1][x] >= 'a' && argv[1][x] <= 'z')
                {
                    printf("\nYou can't enter letters.\n");
                    return 0;
                }
                else if (argv[1][x] >= 'A' && argv[1][x] <= 'Z')
                {
                    printf("\nYou can't enter letters.\n");
                    return 0;
                }
                else
                {
                    //printf("\nCeaser shift accepted.\n");
                }
            }
    
            if (y <= 0 || y > 32)
            {
                printf("\nCeaser shift must be between 1 and 32.\n", y);
                return 0;
            }
    
        }
    
        if (argc > 2)
        {
            printf("You entered too many arg.");
            return 0;
        }
    
        printf("\nYour arg is accepted.\n");
    
        return 0;
    }
    
    #包括
    #包括
    int main(int argc,char*argv[])
    {
    如果(argc==1)
    {
    printf(“\n请输入介于1和32之间的命令行参数。\n”);
    返回0;
    }
    如果(argc==2)
    {
    int x;
    char*ptr;
    长y=strtol(argv[1],&ptr,10);
    int l=strlen(argv[1]);
    对于(x=0;x='a'和&argv[1][x]='a'和&argv[1][x]2)
    {
    printf(“您输入的参数太多了。”);
    返回0;
    }
    printf(“\n接受您的参数。\n”);
    返回0;
    }
    
    这是一个特殊的控制台标志(转义字符[1,2]),你不能做任何事情

    您可以这样运行程序:

    myCode "^" # (with double quotes) 
    

    [1]


    [2]

    这是一个特殊的控制台标志(转义字符[1,2]),你不能做任何事情

    您可以这样运行程序:

    myCode "^" # (with double quotes) 
    

    [1]


    [2]

    请注意,这是一个Caesar密码/shift。要检查字符类,应使用
    标题和宏/函数,如
    isalpha()
    islower()
    isupper()
    isdigit()
    @Jonathan是的,我用它来用Caesar密码加密一条消息。我还要研究一下谢谢。注意这是一个Caesar密码/shift。要检查字符类,你应该使用
    头和宏/函数,例如
    isalpha()
    islower()
    isupper()
    isdigit()
    @Jonathan是的,我用这个来用Caesar密码加密一条消息。我还将研究Thank.Interest。我希望用户不会意外地将其作为我程序的输入。Interest。我希望用户不会意外地将其作为我程序的输入。