Чтение аргументов командной строки - PullRequest
0 голосов
/ 29 марта 2019

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

. / Program -aB -v

Но я не могу понять, как я могу прочитать команду -aB.

Я пытался вставить aB в мой переключатель, но он не работал. Это код, который у меня сработал.

void processCommandSwitches(int argc, char *argv[], char **ppszFileWidgets, Simulation sim){

 int i;

    // Examine each of the command arguments other than the name of the program.
    for (i = 1; i < argc; i++)
    {

        switch (argv[i][1])
        {
        case 'v':                  

                sim->bVerbose = TRUE;

            break;
        case '?':
            *ppszFileWidgets = argv[i];
            break;
        default:
            *ppszFileWidgets = argv[i];
        }
         *ppszFileWidgets = argv[i];

    }

1 Ответ

1 голос
/ 29 марта 2019

Вместо включения второго символа (который работает только для отдельных букв), как насчет попытки использовать strcmp(const char *lhs, const char *rhs), которая возвращает 0 (равно), положительное (lhs после rhs) или отрицательное (lhs перед rhs)?

Например:

#include <string.h>
// ....
for (int i = 1; i < argc; ++i) {
  if (strcmp(argv[i], "-v") == 0) {
    // ...
  }
  else if (strcmp(argv[i], "-aB") == 0) {
    // ...
  }
  // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...