2015-10-30 5 views
-1

Я хочу, чтобы моя программа использовала аргументы командной строки с 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); 
    } 
} 
+0

Я не понимаю, программа получает свой аргумент через argv, вы их там, что вы пытаетесь прочитать? – JSelser

+0

Вы правильно читаете ввод командной строки, что вы хотите сделать? – HDJEMAI

+1

Вы указали аргументы командной строки? просто запуск кода из среды IDE не сделал бы этого. также ** Моя проблема в том, что getchar только обращает внимание на то, что я набираю после того, как программа выполнила. **, что это значит? – CrakC

ответ

2

GetChar читать из аргументов командной строки

Это проблема - если вы получаете аргументы командной строки, вы не делаете это с getchar: использовать argc, чтобы получить количество аргументов и argv[], чтобы получить конкретные аргументы.

Я не думаю, что вам нужна getchar в этой программе.

Это также хорошие предложения, пожалуйста, обратите внимание на части об обработке аргументов:

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

Я думаю, вы пытаетесь написать программу, которая ведет себя так:

program pin message

, а затем он будет использовать какой-то шифр Цезаря на message для обфускации вывода. Это правильно?

Если да, то вам необходимо также получить argv[2] и использовать printf для вывода результатов.

Смежные вопросы