![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Доброго времени суток! Помогите, пожалуйста, отладить пример из книги Кернигана и Ритчи. Никак не могу сообразить, как заставить его работать.
Вот пример из книги, без изменений: Код:
1) Заменил строку: while (c == *++argv[0]); на: while (c = *++argv[0]); 2) Заметил, что ключ 'x' не обрабатывается, но это ерунда, я исправил. 3) Не смог найти ошибку. Предполагаю, что она кроется в отмеченной красным строке. Ведь нельзя же скажем объявить массив int a[10] и произвести операцию: ++a. А здесь это проделали. Как записать правильно? Заранее спасибо всем, кто откликнется на просьбу: помочь разобраться. |
![]() |
![]() |
![]() |
#2 | |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]() Цитата:
Начните с того, что именно у вас не работает?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Последний раз редактировалось Blade; 08.12.2011 в 21:03. |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
У меня компилятор ругается на strstr(line, MAXLINE). Говорит, что не может найти функцию с подходящими параметрами. Оно и понятно. Посмотри объявление функции. А почему в вариантах для switch (c) символы типа case 'x' ? Переменная с объявлена как int. И еще, разве хоть раз выполнится условие (c == *++argv[0])? Переменная с объявлена как int.
Последний раз редактировалось JuniorProger; 08.12.2011 в 21:22. |
![]() |
![]() |
![]() |
#4 | ||||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
> to Blade
Я нашёл это место в книге. Написано, что эта операция не разрешена! Я даже попробовал сейчас: Код:
error C2105: для "++" требуется левостороннее значениe > to JuniorProger Цитата:
Цитата:
Цитата:
Цитата:
Вот исправленный код (кроме except, пока он не нужен), компилится нормально, но всё равно ошибка возникает на этапе выполнения. Код:
Последний раз редактировалось 8Observer8; 08.12.2011 в 22:33. |
||||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
Ну а как насчет того, что int c ?
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Я успел раньше отредактировать
![]() Думаю, косяк в этой записи: (*++argv)[0]. Не нравится она мне. Последний раз редактировалось Stilet; 08.12.2011 в 23:10. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
Чет я тогда не понимаю. Как он в int найдет 'x' или 'n'? Он всегда будет выходить на default (наверное).
Так он ошибку выдает? Попробуй так *(++argv[0]) Последний раз редактировалось Stilet; 08.12.2011 в 23:12. |
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() Цитата:
Код:
Цитата:
![]() |
||
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
А что вообще делает программа? Я в код не вникал. Разъясни поподробнее.
Действительно можно, но я не видел чтобы кто-то так рекомендовал делать. По-моему это только ухудшает читаемость программы и создает путанницу. Лучше так не делать. Последний раз редактировалось Stilet; 08.12.2011 в 23:17. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() Цитата:
Ключи: -x все строки, кроме образца -n ставить номер перед выводимой строкой Ну проще на примерах объяснить: Пример 1: find abc Запрос(введите строки): abc1344 dfdffdfs ererrer dsfabc344 Результат: abc1344 dsfabc344 Пример 2: find -x -n abc Запрос(введите строки): abc1344 dfdffdfs ererrer dsfabc344 Результат: 2: dfdffdfs 3: ererrer Предыдущий можно ещё и так запускать Пример 2(перестановка и объединение ключей): find -nx abc Последний раз редактировалось 8Observer8; 09.12.2011 в 10:12. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при установке KOL&MSK | DKENT | Компоненты Delphi | 0 | 21.09.2011 10:36 |
Ошибка c AnsiChar & Char | Яр|/||< (^_^) | Общие вопросы Delphi | 3 | 19.02.2010 21:22 |
TForm & TImage & PNG & Прозрачность | delphi_beginner | Общие вопросы Delphi | 7 | 19.09.2009 08:46 |
EMS InterBase & FireBird Manager 3 ошибка создания Базы данных | Gilio | БД в Delphi | 2 | 08.05.2009 15:59 |