C++:
Чтение аргументов командной строки
Как это сделать:
В C++ аргументы командной строки принимаются в main()
в виде массива указателей на символы. Вот как вы можете их получить:
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "Вы ввели " << argc << " аргументов:\n";
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << "\n";
}
return 0;
}
Пример вывода: (Предполагая выполнение как ./myProgram foo bar
)
Вы ввели 3 аргумента:
./myProgram
foo
bar
Подробнее
Давным-давно командная строка была единственным способом взаимодействия с программами. Современные графические интерфейсы великолепны, но командная строка сохраняется, особенно в серверных или разработческих средах. Она предлагает быстрое, скриптовое управление.
Альтернативы встроенным argv
и argc
включают в себя библиотеки, такие как Boost.Program_options
для более изысканного разбора. Также есть функция getopt()
в системах, подобных Unix, для более традиционных поклонников командной строки.
Реализация разбора аргументов с нуля позволяет вам настроить его, но следите за безопасностью. Не доверяйте пользовательскому вводу слепо — всегда проверяйте и очищайте данные.
См. также
- Документация C++ по функции
main()
: https://en.cppreference.com/w/cpp/language/main_function - Boost.Program_options: https://www.boost.org/doc/libs/release/libs/program_options/
- Учебное пособие по
getopt()
от GNU: https://www.gnu.org/software/libc/manual/html_node/Getopt.html