Другие языки программирования и технологии

C++ непонятно,растолкуйте плиз

Тема: аргументы командной строки int main(int argc, char *argv[]) Аргумент argc представляют общее число аргументов командной строки, введенных пользователем, включая имя самой программы. Таким образом, для следующей командной строки аргумент argc является значением 2: readtxt output.txt Аргумент argv - это массив строк, содержащий все аргументы командной строки,начиная с самой программы.В только что приведенном примере элемент массива argv[0] указывает на readtxt, а элемент argv[1] - на output.txt В общем, когда прочитал это в книге, ничего не понял.Обьясните пожалуйста, зачем нужны эти аргументы вообще, куда вписывать readtxt output.txt , где эта командная строка находится,и как сделать, чтобы значение argc было больше 1(написал код чтобы вывести argc,всегда 1).
БI
Бауржан Islamov
4 786
командная строка - это та строчка в косноли, где ты запускаешь свою программу, например:
c:\myProgram.exe myVar

в таком случае: argc = 2
argv = ['myProgram.exe','myVar']
ЕМ
Евгений Маер
599
Лучший ответ
Бауржан Islamov А что означает myVar в вашем примере? Вызов какой то ф-ции из программы?
Программы из консоли не запускал, просто сохраненный экзешник открывал.
Евгений Маер myVar это просто один из параметров запуска программы. можно написать сколько угодно параметров, хоть вот так:
c:\myProgram.exe 1 2 3 4 dgerg 32dsf yaIdiot
все параметры через пробел будут записаны в массив argv, а потом уже ты их обрабатывай как тебе угодно
Ну это просто.
Пуск -выполнить. Сделал? вот это и есть окно для командной строки... Совсем разучились)) Раньше, под DOS
только из командной строки все и делалось. Да и сейчас админят под nix-ами тоже ))
тут один дополнительный параметр программы edit
> edit mytext.txt

или 2 параметра:
> copy a.txt b.txt
Это нужно только в том случае, если ты собираешься когда-нибудь запускать твою программу с какими-то параметрами, которые она возьмет не путем ввода, а из командной строки своего запуска или из ярлыка, которым запускается.
Обычно это не нужно и можно писать короче int main(){....}
параметры командной строки - это способ передать твоей программе параметры на автомате (даже без участия юзера) , без правки всяких конфигов и т. п.

допустим программа должна открыть файл file.txt

тогда вызывать можно так:
prog.exe file.txt

a int argc, char *argv[] - позволяют обратиться к этим данным без лишних заморочек
Леонид Мажник
Леонид Мажник
17 142
readtxt output.txt - это тебе для примера дано, что бы ты понял что это такое, хотя в принципе тут и так всё понятно написано, можно было и без этой строчки. Зачем программе нужны аргументы? Всё зависит от программы, можно обойтись и без них.
.
к примеру:

format C:

format - им программы
c: - аргумент, который учитывается программой в процессе работы.

В общем объяснил, как смог. Если не пингвин, то поймёшь.
пока не заморачивайся с этой фигней, потом дойдет
если ты только начинаешь программировать, то тебе знать за что отвечают параметры мэйна не обязательно
Бауржан Islamov Хз, я строго по каждой теме в книге иду, наткнулся на эту тему и... вот.До этого файловые потоки изучил, все понятно было