2012-01-07 4 views
2

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

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

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

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

+2

Шаг 1: [Получить хороший вводный C++ книги] (http://stackoverflow.com/questions/388242/the-definitive-c -book-гид-и-лист). Шаг 2: Прочитайте эту книгу и выполните упражнения. Шаг 3. Прочитайте аргументы командной строки и как их можно получить через 'int main (int argc, char ** argv)'. –

+4

Я думаю, что вы называете «командами CMD» более широко известными как «программы». Да, C++ является языком программирования и может использоваться для создания программ. –

ответ

5

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

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

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

Название программы само по себе будет рассчитывать в качестве первого параметра, так getkey /? установит ARGC в 2, argv[0] будет «getkey» и argv[1] будет «/?»

3

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

int main() 

в

int main(int argc, char** argv) 

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

4

Вы бы просто хотите другое заявление о 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"; 
} 
Смежные вопросы