В предыдущей статье мы разобрали двумерные массивы,как собственно и массивы строк.Сегодня поговорим о том,что запало мне глубоко в сердечко и застряло там навсегда-аргументы программы.
Изначально может быть не понятно вовсе как такое вообще может быть,что из консоли или терминала можно передать аргументы и использоваться их как тебе вздумается.
Чтобы понять лучше эту тему-вам нужно понять,что всё,начиная от биоса до браузера,на котором вы открываете порнохаб-программы.
То есть одна программу запускает другую,просто работают в разной среде.На самом деле мы уже запускали программы с аргументами:
ls директория
dir папка
Директория и папка как раз и выступают аргументами.Было бы здорово использовать такую же конструкцию в нашем шифровании.Как вы понимаете-после получения аргументов,их надо где-то хранить,чтобы с ними работать.
Всё это на себя берёт функция main:
void main(int argc,char *argv[])
Вместо обычного определения функции-мы добавили два аргумента,первый argc примет количество аргументов,argv-заберёт строки из аргументов.Тут есть небольшой подвох,потому как первый аргумент всегда занят и имеет имя самой программы:
void main(int argc,char *argv[])
{
printf("Program's name:%s\n",argv[0]);
}
Все же остальные мы можем использоваться как хотим,с тем же открытием файлов:
void main(int argv,char *argv[])
{
FILE *file=fopen(argv[1],"r");
if(file!=NULL)
{
while(!feof(file))
printf("%c",getc());
}
fclose(file);
}
Если вы соберёте эту программу-у вас получится нечто полезное,а именно ваш личный аналог программы cat или type,которые выводят содержимое файлов.
В заключение добавлю,что аргументы main не обязаны называться именно так и иметь именно такой порядок,это просто стандартизированная запись,которой придерживается большинство разработчиков.
Домашнее задание: переписать программу по шифрованию с приёмом файла как аргумент и добавить в программу по приёму вызова обработчик неудачного открытия файла.
С вами был D21nkMaster,желаю удачи!