![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
Условие (c = *++argv[0]) выполняется всегда, т.к. это не проверка, а присваивание.
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
думаю надо так
Код:
|
![]() |
![]() |
![]() |
#14 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
> to JuniorProger
Цитата:
Код:
Последний раз редактировалось 8Observer8; 09.12.2011 в 10:10. |
|
![]() |
![]() |
![]() |
#15 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
ТС, о чем вы вообще говорите? Пример из книги, без всяких исправлений, прекрасно компилируется.
http://codepad.org/FCILMdmk Вы можете объяснить, что вас конкретно не устраивает.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#16 | ||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
> to Blade
Цитата:
Цитата:
Я ещё попробовал заменить строку: int main (int argc, char* argv[]) { на строку: int main (int argc, char** argv) { Всё равно не работает. Последний раз редактировалось 8Observer8; 09.12.2011 в 11:24. |
||
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Я нашёл эту книгу на английском. Пример работает. Пока не понял почему работает и где была ошибка.
Код:
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Всем, спасибо! Тему можно закрывать. Понял в чём ошибка.
Надо заменить строку: if ((strstr(line, argv[argc]) > 0)) { На строку: if ((strstr(line, *argv) != NULL) != except) { |
![]() |
![]() |
![]() |
#19 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Поторопился я с закрытием темы. Остались "непонятки". Поясните кто-нибудь, пожалуйста, почему конструкция (*++argv)[0] (из предыдущего кода) работает, а по-моему не должна. Вот пример, где она не работает:
Код:
|
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
![]()
Что ты хочешь получить этой конструкцией (*++argv)[0] ?
Если надо букву b, то надо сделать так *(++argv[0]) или *++argv[0] (первый вариант понятнее). Если число 3, то *(++(++argv[1])) или *++(++argv[1]). Т.е. сначала выбираешь элемент массива argv: argv[0] = "abc" (указатель на букве а) , argv[1] = "123" (указатель на цифре 1). Затем сдвигаешь указатель операцией ++: ++argv[0] = "bc" (указатель перешел на b), ++(++argv[0]) = "c"(указатель перешел на с), (++argv[1]) = "23". Если нужно получить конкретное значение, например 2, то добавляешь * : *(++argv[1]) = "2". Думаю понятно объяснил. Последний раз редактировалось JuniorProger; 10.12.2011 в 21:06. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при установке 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 |