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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2010, 18:30   #1
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию getopt отказывается обрабатываеть 3-ю опцию

Код:
int main(int argc, char **argv) 
{    
    int opt;
  
   if (argc == 1) usage();
   while ((opt = getopt(argc, argv, "a:b:c")) != -1) {
     switch (opt) {
       case 'a': break;
       case 'b': break;
       case 'c': break;
       default: usage();
     }
   }
}
getopt не в какую не хочет видеть 3-ю опцию (-с). Вместо этого выводит, мол нет такой опцию и указывает на первый символ из значения. Например, на ./main -chere выругается, что не знает опцию -h. В чем может быть трабла?

Последний раз редактировалось Stilet; 25.06.2010 в 14:22.
gignet вне форума Ответить с цитированием
Старый 21.06.2010, 18:55   #2
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

./main -chere - это тоже самое, что и ./main -c -h -e -r -e
Собственно обработчиков -h, -e, -r я не вижу, только -a, -b, -c
Для передачи аргумента-строки нужно поступать так: ./main --chere, в таком случае надо немножко по другому поступать.
oleg kutkov вне форума Ответить с цитированием
Старый 21.06.2010, 19:12   #3
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Чем тогда можно распарсить следующее:
PHP код:
./main -uroot -phz_kakoy -i"hello man" 
В переменные соответственно
char* user;
char* pass;
char* msg;
Таким ведь образом, к примеру, парсит параметры mysql-клиент

Последний раз редактировалось gignet; 21.06.2010 в 19:14.
gignet вне форума Ответить с цитированием
Старый 25.06.2010, 13:58   #4
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от oleg kutkov Посмотреть сообщение
./main -chere - это тоже самое, что и ./main -c -h -e -r -e
Собственно обработчиков -h, -e, -r я не вижу, только -a, -b, -c
Для передачи аргумента-строки нужно поступать так: ./main --chere, в таком случае надо немножко по другому поступать.
Разобрался сам, не в этом дело. Вместо "a:b:c" надо было всего лишь написать "a:b:c:"
gignet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal программа отказывается работать vOvA vO Помощь студентам 4 30.05.2010 12:51
Firefox отказывается использовать Юникод igor_564 HTML и CSS 3 16.03.2010 00:42
Комп категорически включаться отказывается ROD Компьютерное железо 23 28.01.2010 12:24
AlphaBlend, StretchBlt - отказывается отрисовавывать HDC BOBAH13 Win Api 0 17.01.2010 18:42
setTimeout отказывается работать Deight JavaScript, Ajax 17 29.01.2009 20:29