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
输出结果
我想让我的程序使用带有 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
输出结果