tictactoe/game/parse_args.hpp

39 lines
1.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef PARSE_ARGS_HPP_
#define PARSE_ARGS_HPP_
#include <iostream>
#include <getopt.h>
namespace ra // read arguments
{
enum keys {ksize, kwidth, kmargin, kversion};
typedef struct
{
bool required = false; // Ключ является обязательным для установки
bool isset = false; // Ключ был установлен при запуске программы
int count = 0; // Количество аргументов переданных для текущего ключа
char *arguments[1] = {nullptr}; // Переданные аргументы (до 10 аругментов на один ключ)
} key;
const char* const short_options = "hs:w:m:v";
const struct option long_options[] =
{
{ "help", 0, nullptr, 'h'},
{ "size", 1, nullptr, 's'},
{ "width", 1, nullptr, 'w'},
{ "margin", 1, nullptr, 'm'},
{ "version", 0, nullptr, 'v'},
{ nullptr, 0, nullptr, 0}
};
[[ noreturn ]] void print_usage_and_exit(int); // Напечатать справку и выйти с кодом ошибки
void parse_args(int, char **, key **); // Прочитать все ключи
void get_argument(key *); // Получить аргумент ключа
}
#endif