getchar从命令行参数中读取

时间:2015-10-30 04:29:28

标签: c command-line-interface getchar

我想让我的程序使用命令行参数和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);
    }
}

1 个答案:

答案 0 :(得分:2)

  

getchar从命令行参数中读取

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

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

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

encode program using getchar from command line argument and putchar to send to decode

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

program pin message

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

如果是,那么您还需要获取argv[2]并使用printf输出结果。