Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 15:24   #1
Alendorff
Форумчанин
 
Аватар для Alendorff
 
Регистрация: 04.06.2011
Сообщений: 104
По умолчанию Линукс, Спп, Консоль

Здравствуйте. Есть программа, запускаемая в консоли и нужно дописать help-страничку, которая будет выводится при вводе ключа --help
Кто подскажет шаблонный код?
Спасибо.

Дошло почему не входило оригинальное название (Linux, C++, bash, --help) :D

Последний раз редактировалось Alendorff; 16.04.2012 в 15:27.
Alendorff вне форума Ответить с цитированием
Старый 16.04.2012, 15:34   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Alendorff

Есть программа, запускаемая в консоли и нужно дописать help-страничку, которая будет выводится при вводе ключа --help
Кто подскажет шаблонный код?


это зависит от того, как в программе реализована обработка параметров командной строки. впрочем, если линукс, то начать можно с гоогле getopt
Rififi вне форума Ответить с цитированием
Старый 18.04.2012, 05:49   #3
Alendorff
Форумчанин
 
Аватар для Alendorff
 
Регистрация: 04.06.2011
Сообщений: 104
По умолчанию

написал через короткий ключ -h... не захотел пока что разбираться в getopt_long

Код, вдруг кто-то наткнётся:
Код:
int opt;
 char op=' ';
char file_1[300], file_2[300],  file_3[300];
 while ((opt = getopt(argc, argv, ":hsdmx:y:o:")) != -1) { /*x-первый входной, y-второй входной, o-выходной файл*/
  switch(opt) {
  case ‘h’:
  if (op==' '){
  help (); return 0;}
  case 's':
  if (op==' '){
  op=opt; break; }
  else { 
    std::cout<<"Error: Wrong argument."<<std::endl; return 0; };
 case 'd':
if (op==' '){
  op=opt; break; }
  else { 
    std::cout<<"Error: Wrong argument."<<std::endl; return 0; };
case 'm':if (op==' '){
  op=opt; break; }
  else { 
    std::cout<<"Error: Wrong argument."<<std::endl; return 0; };
case '?': if (op==' '){
  op=opt; break; }
  else { 
    std::cout<<"Error: Wrong argument."<<std::endl; return 0; };
  case ':': 
    std::cout<<"Error: Need argument."<<std::endl; return 0;

  case 'x': strcpy(file_1, optarg); break;
  case 'y': strcpy(file_2, optarg); break;
  case 'o': strcpy(file_3, optarg); break;
  }; 
 };
Alendorff вне форума Ответить с цитированием
Старый 18.04.2012, 05:53   #4
Alendorff
Форумчанин
 
Аватар для Alendorff
 
Регистрация: 04.06.2011
Сообщений: 104
По умолчанию

Кстати, а можно ли как-нибудь задействовать несколько вариантов в одном case-блоке?
Пробовал через "или" ("||") не работало, ещё просто через запятую - тем более не работало... хотя с ("||") всё хорошо компилировалось, но работало неправильно... может конечно, тогда ещё какие-то правки не сделал, но я точно не помню... как всё-таки правильно?
Alendorff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из DOS в линукс. vbm Qt и кроссплатформенное программирование С/С++ 4 10.02.2012 18:04
параллельный вывод в консоль линукс arcer Общие вопросы C/C++ 6 09.11.2010 22:20
Панели Линукс Яр|/||< (^_^) Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 2 03.02.2010 11:01
Как из спп вызвать на исполнение другую (сторонююю) программу kin63camapa Общие вопросы C/C++ 8 14.12.2009 19:12
Исходники линукс Яр|/||< (^_^) Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 12 07.12.2009 14:45