С++. MinGW. Аргументы командной строки для начинающих

Компилировать программу из командной строки мы уже научились, если же не научились, то бегом учить С++ для начинающих MinGW командная строка. Работа из консоли Windows.

Компиляция программ из консоли — дело несложное. Сейчас уже 2014г., а поиск простейшего примера передачи аргумента в переменную увёл меня куда-то глубоко-глубоко, в бездну. Есть примеры, но я абсолютно ничего по ним не понял, поэтому решил показать максимально простой пример работы с аргументами командной строки C++.

Когда компилируете программу из командной строки, аргументы в командной строке указывать не нужно, потому что они подаются уже готовой программе, а не компилятору. Аргументы можно указать в ярлыке к программе, а можно запустить программу из командной строки, дописав в конец команды запуска программы аргументы для программы. Давайте начнем с самой элементарной задачи.

  • Создать программу, объявить в программе только одну целочисленную переменную, в которую принять значение из командной строки, после чего вывести записанное в переменную значение на экран
Такая вот примитивная задача, решение которой наглядно продемонстрирует, что работа с командной строкой доступна даже конкретному новичку.
Приступаем к решению.

Cоздаём где-нибудь файл. Я создаю файл Test.cpp в каталоге C:\C++\Test\. Полный путь к созданному мной файлу: C:\C++\Test\Test.cpp
Открываем файл каким-нибудь блокнотом и пишем исходный код на языке C++, сохраняем файл.
Мой код:

Запускаем командную строку. Я буду использовать cmd.exe из Windows.
Запускаем и компилируем программу:

C:\MinGW\bin\g++ C:\C++\Test\Test.cpp -o C:\C++\Test\Test.exe

ci-plus-plus-snachala.ru

Компилятор создат исполняемый файл, запишет его согласно указанному нами пути. В этот самый файл и следует передавать аргументы.

Вариант 1.
Создать ярлык к файлу Test.exe (Создавать ярлыки должны уметь все)
В свойствах ярлыка дописать то, что должна принять функция main
т. е., например, в моём случае команда в объекте будет выглядеть так:

C:\C++\Test\Test.exe 5678

Эта цифра, после пути файла, означает, что я передаю в файл значение ‘5678’
ci-plus-plus-snachala.ru
В общем, дописали параметр, запустили сам экзешник и видите фигу, запустили ярлык с измененным свойством и видите, что программа поняла это число и успешно выводит его на экран.

Вариант 2.
Любой файл можно запустить из командной строки. Пишете полный путь к файлу и дописываете в конец команды аргументы. В общих чертах выглядит это как описанное проведение изменений в свойствах ярлыка: строчка команды одна и та же, просто способов её вписать много.
C:\C++\Test.exe 5678

ci-plus-plus-snachala.ru

Вот такие пироги. Функция atoi, которая используется в приведённом в статье коде, переводит символьную строку в числовое значение (текст в число). Используется atoi оттого, что *argv[] хранит указатели на начала символьных строк, а строка и число совсем не одно и то же. *argv[] может принимать больше одного аргумента, потому что представляет собой массив символьных строк. Чтобы использовать несколько аргументов, нужно добавлять их в команду, разделяя пробелами.
Демонстрация только что написанного:

Выведем на экран несколько значений.
Изменяем наш файл Test.cpp

Компилируеи изменённый файл.
Запускаем программу:
C:\C++\Test\Test.exe 105 95 85 75

Команду вписывайте любым удобным для вас способом: ярлык, командная строка.
Если всё сделали верно, то на экран должны вывестись все отдаваемые в программу числа.

argv[1] = 105 (105 здесь символьная строка, а не число; аналогично ниже)
argv[2] = 95
argv[3] = 85
argv[4] = 75

argv[0] содержит название файла.

Количество передаваемых аргументов сохраняется в argc.

  • argc явлется счётчиком элементов массива *argv[]
Вот такие вот микроосновы работы с командной строкой вы узнали. Я не очень хочу описывать дальше, т. к. сам в этом дуб дубом, и вот этого, того, что я сейчас описал, скорее всего достаточно, чтобы черпать из других источников знания о работе с командной строкой. Цель этой статьи не показать всего, а дать импульс к развитию в работе с командной строкой, так что строго не судите.

4 комментария на «“С++. MinGW. Аргументы командной строки для начинающих”»

  1. Спасибо! Полезная статья!

  2. Евгений:

    В первом коде в строке 9 ошибка, нужно убрать кавычки.

  3. Аноним:

    ОХРЕНЕНАЯ СТАТЬЯ!!! Я все понял, что давно не мог понять!

    1
    2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/stanislav-gornakov/razrabotka-komputernyh-igr-dlya-pristavki-xbox-360-v-xna-game-studio-express/?lfrom=15589587

Последние комментарии

Яндекс.Метрика