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

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Компилировать программу из командной строки мы уже научились, если же не научились, то бегом учить С++ для начинающих MinGW командная строка. Работа из консоли Windows
Дело это несложное. Но вот второй этап — работа с командной строкой. Сейчас уже 2014г., а поиск простейший пример передачи аргумента в переменную засунул куда-то глубоко глубоко в бездны. Есть примеры, но я нефига по ним не понял, поэтому решил показать максимально простой пример работы с аргументами командной строки C++

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

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

Такая вот примитивная программа, которая покажет, что работа с командной строкой доступна даже конкретному новичку.

Итак, создаем где-нибудь файл.
Я создам файл Test.cpp в C:\C++\Test\, т.е. полный путь к файлу выглядит как
C:\C++\Test\Test.cpp
Содержимое файла, написанное в обычном блокноте.

Запускаем командную строку, я буду использовать 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, которая здесь используется, переводит символьную строку в числовое значение. Связано это с тем, что *argv принимает символьные строки, а строка и число совсем не одно и то же, кроме того *argv может принимать намного больше чем 1 аргумент, это массив символьных строк. Просто при вызове программы можно через пробел указывать все новые и новые аргументы.

Для демонстрации чего сгодится пример вывода на экран нескольких значений. Давайте изменим наш файл Test.cpp

Скомпилируем этот пример и вызовем пограмму как
C:\C++\Test\Test.exe    105    95    85    75
(Ну в ярлыке или командной строке дописывать вам как лучше)
На экран должны вывестись все указанные числа, т.е
argv[1] = 105 (Причем это символьная строка, а не число, как и все, что ниже)
argv[2] = 95
argv[3] = 85
argv[4] = 75
_____________
argv[0] содержит название файла.

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

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

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

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

Ваш e-mail не будет опубликован.

Поиск

 
     

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

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Работа программиста и шамана имеет много общего - оба бормочут непонятные слова, совершают непонятные действия, и не могут объяснить, как оно работает

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок