| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Разложить текст |
| Автор: 4amba 23.5.2011, 19:20 |
| Здравствуйте, можете помочь разложить текст чтобы стал более понятным. Есть кусок программы: while(c[i]=getc(f)!=EOF) { ++i if (i==255) { } } Не могу понять как разложить цикл, как мне говорили в нем можно опустить getc и тогда while по идее у нас меняется на for. |
| Автор: triclosan 23.5.2011, 20:59 |
| с позиций дзен while круче чем for |
| Автор: volatile 24.5.2011, 00:16 |
| for (i=0; i<10; ++i) { ... } равнозначно i=0; while (i<10) { ... ++i; } компилятор в обоих случаях создаст идентичный код 1 в 1. Это просто некоторое удобство для программиста. В принципе если бы не было for, то можно было бы обойтись только while. И наоборот. зы: а то что вы написали, вообще смысла не имеет. |
| Автор: bsa 24.5.2011, 13:58 |
| данный код присваивает c[i] результат сравнения полученного символа с EOF. А так как при не пустом вводе символ не будет EOF, то цикл завершится сразу. В следующий раз рекомендую использовать скобки. |
| Автор: bsa 24.5.2011, 16:05 |
| borisbn, точно. заработался. |
| Автор: 4amba 24.5.2011, 20:53 |
| а можно как нибудь изменить c[i]=getc(f) чтоб использовать int , т.к при таком выражении то считывается половина файла а не весь. |
| Автор: bsa 24.5.2011, 23:18 | ||
4amba
|