Аргументы int argc, char* argv[]

222
15 декабря 2016, 16:11
void main (int argc, char* argv[])  {    
FILE *inf, *outf;  
if (argv[1][0] == 'e'){  
    inf = fopen (argv[2], "rb");  
    outf = fopen (argv[3], "wb");  
    DataFile.SetFile (inf);  
    CompressedFile.SetFile (outf);  
    encode ();  
    fclose (inf);  
    fclose (outf);  
    } 
    else if (argv[1][0] == 'd'){  
    inf = fopen (argv[2], "rb");  
    outf = fopen (argv[3], "wb");  
    CompressedFile.SetFile (inf);  
    DataFile.SetFile (outf);  
    decode ();  
    fclose (inf);  
    fclose (outf);  
    }  
}

Можете, пожалуйста, объяснить, как пользоваться этой программой через командную строку.

Answer 1
int argc, char* argv[]

argc - количество аргументов,
argv - массив строк-аргументов

Запуская программу из командной строки, вы пишете:

в windows: program.exe

в linux: ./program

Здесь program.exe или program есть первый аргумент командной строки (argv[0]), то есть это всегда имя запускаемой программы. Всё, что вы пишете далее через пробел - остальные аргументы.
В программе вы можете их использовать, как вам необходимо.

Answer 2
program <option> <input file> <output file>
options:
e - encode
d - decode
READ ALSO
Разделение класса в заголовочный файл и в файл с кодом

Разделение класса в заголовочный файл и в файл с кодом

Вроде всегда так класс разделял в h-хедерные файлы и cpp-файлы с кодом, но в этот раз что-то пошло не так :( Пишет Unresolved external blablablaobj

216
Проблема с переопределением std::function [закрыто]

Проблема с переопределением std::function [закрыто]

и снова доброго вечера всем форумчанамВозникла проблема с переопределением объектов std::function<void()> и будто вещь это не особо сложная, а разобраться...

203
Ошибка при выполнении программы

Ошибка при выполнении программы

Учу Си по книге Стивена Прата "СЛекции и Упражнения

257
Как сложить две строки?

Как сложить две строки?

Необработанное исключение в "0x003fd2e9 (msvcr100ddll)" в "test1

350