![]() |
|
Модераторы: bsa |
![]()
|
|
| 4amba |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2011 Репутация: нет Всего: нет |
Здравствуйте, можете помочь разложить текст чтобы стал более понятным.
Есть кусок программы: while(c[i]=getc(f)!=EOF) { ++i if (i==255) { } } Не могу понять как разложить цикл, как мне говорили в нем можно опустить getc и тогда while по идее у нас меняется на for. |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 2 Всего: 12 |
с позиций дзен while круче чем for
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
for (i=0; i<10; ++i)
{ ... } равнозначно i=0; while (i<10) { ... ++i; } компилятор в обоих случаях создаст идентичный код 1 в 1. Это просто некоторое удобство для программиста. В принципе если бы не было for, то можно было бы обойтись только while. И наоборот. зы: а то что вы написали, вообще смысла не имеет. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
данный код присваивает c[i] результат сравнения полученного символа с EOF. А так как при не пустом вводе символ не будет EOF, то цикл завершится сразу.
В следующий раз рекомендую использовать скобки. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
c[i] в этом случае будет равно true или 1, и цикл не завершится, а будет крутиться вечно -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
borisbn, точно. заработался.
|
|||
|
||||
| 4amba |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2011 Репутация: нет Всего: нет |
а можно как нибудь изменить c[i]=getc(f) чтоб использовать int , т.к при таком выражении то считывается половина файла а не весь.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
4amba
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |