Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Получение данных из командной строки
Передать данные можно в командной строке после названия файла. Чтобы получить эти данные в программе используется следующий формат функции main()
:
int main(int argc, char *argv[]) {
// Инструкции
return 0;
}
Через первый параметр (argc
) доступно количество аргументов, переданных в командной строке. Следует учитывать, что первым аргументом является название исполняемого файла, поэтому значение параметра argc
не может быть меньше единицы. Через второй параметр (argv
) доступны все аргументы в виде строки (тип char *
). Квадратные скобки после названия второго параметра означают, что доступен массив строк. Рассмотрим получение данных из командной строки на примере (листинг 2.11).
Листинг 2.11. Получение данных из командной строки
#include <iostream>
int main(int argc, char *argv[]) {
std::cout << "argc = " << argc << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
return 0;
}
Сохраняем программу в файл C:\book\test.cpp
. Запускаем командную строку и компилируем программу:
C:\Users\Unicross>cd C:\book
C:\book>set Path=C:\Qt\Tools\mingw810_64\bin;%Path%
C:\book>g++ -Wall -Wconversion -O3 -o test.exe test.cpp
Для запуска программы вводим команду:
C:\book>test.exe -param1 -param2
В этой команде мы передаем программе test.exe
некоторые данные (-param1 -param2
). Результат выполнения программы будет выглядеть так:
argc = 3
test.exe
-param1
-param2
Первый элемент массива (argv[0]
) не всегда будет содержать только название исполняемого файла. Если в командной строке запуск производится следующим образом:
C:\book>C:\book\test.exe -param1 -param2
то элемент будет содержать не только название файла, но и путь к нему:
argc = 3
C:\book\test.exe
-param1
-param2
Если нужно передать значение, которое содержит пробел, то это значение нужно указывать внутри кавычек:
C:\book>test.exe x + y "x + y"
argc = 5
test.exe
x
+
y
x + y
В первом случае мы получили каждый символ по отдельности, а во втором — все символы вместе, указав значение внутри кавычек.
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов