我想让我的程序使用命令行参数和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);
}
}
答案 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
输出结果。