Создание программ командной строки с аргументами - PullRequest
2 голосов
/ 08 января 2012

Я обнаружил, что можно создавать программы командной строки через C ++.Я новичок в C ++ и знаю только базовые вещи, но все же я хочу использовать его для создания новых программ командной строки.Теперь я обнаружил этот код:

//file name: getkey.exe
#include <conio.h>
int main(){
    if (kbhit())  return getche() | ('a' - 'A');
}

, который удивительно прост, и он работает так: getkey Но это не объясняет, как создать команду с аргументами (например: getkey /? Или / K или /foo...)

Как создать программу командной строки с аргументами? << Главный вопрос </b>

Ответы [ 3 ]

4 голосов
/ 08 января 2012

Вы просто хотите другое объявление main():

#include <iostream>
int main(int ac, char* av[]) {
{
    std::cout << "command line arguments:\n";
    for (int i(1); i != ac; ++i)
        std::cout << i << "=" << av[i] << "\n";
}
4 голосов
/ 08 января 2012

определяет функцию main как принимающую эти два аргумента:

int main( int argc, char* argv[] )

argc будет заполнен числом переданных аргументов, а argv будет массивом этих параметров в виде строк символов с нулевым символом в конце. (Струны в стиле C)

Само имя программы будет считаться первым параметром, поэтому getkey /? установит argc на 2, argv[0] будет "getkey" и argv[1] будет "/?"

3 голосов
/ 08 января 2012

Для обработки аргументов командной строки измените:

int main()

на

int main(int argc, char** argv)

argc - количество аргументов командной строки (количество элементов в argv).argv - аргументы командной строки (где первая запись в argv - это имя исполняемого файла программы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...