getchar 从命令行参数中读取

getchar to read from command line arguments

我想让我的程序使用带有 getchar 的命令行参数,然后对消息进行编码。我的问题是 getchar 只关注我在程序执行后输入的内容。我怎样才能让它读取命令行参数呢?

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int pin, charin, charout;

    // this verifies that a key was given at for the first argument
    if (atoi(argv[1]) == 0){
        printf("ERROR, no key was found..");
        return 0;
    }
    else {
        srand(atoi(argv[1]));
        pin = rand() % 27;
    }
    while( (charin=getchar()) != EOF){
        charout = charin + pin;
        putchar(charout);
    }
}

getchar to read from command line arguments

这就是问题所在 - 如果您正在获取命令行参数,则不能使用 getchar:使用 argc 获取参数计数,使用 argv[] 获取特定参数参数。

我认为你根本不需要 getchar 在这个程序中。

这些也是很好的建议,请看参数处理部分:

我认为您正在尝试编写一个行为如下的程序:

program pin message

然后它将在 message 上使用某种凯撒密码来混淆输出。是吗?

如果是,那你还需要得到argv[2],用printf输出结果