|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Помогите, пожалуйста, не могу въехать в такую важную суть как eof. использую Visual Studio, Window 7 . Как мне отловить eof этот несчастный ? ввел пару символов, а потом нажал Ctrl + z. ну посмотрел отладчиком последний символ в переменной c имеет код x1a . ну это ж не eof никакой. тогда как выловить ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 19:42 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81последний символ в переменной c имеет код x1a . Это первый символ, а не последний. Продолжай пошаговое выполнение. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:01 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Мне показалось что последний. Так как потом промсходит опять опрос ввода с клавиатуры getchar, а значит поток пуст ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:21 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
EOF это бред унаследованный из C, нездоровая методология, его просто не надо пользовать, пользуйся fread(). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:34 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Dima T EOF это бред унаследованный из C, нездоровая методология, его просто не надо пользовать, пользуйся fread(). Да, это и есть C. Обязательно прислушаюсь. Но чтобы перейти на c++ сначала книжку керригана надо все же от корки до корки пройти, а там с. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:39 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81 Dima T EOF это бред унаследованный из C, нездоровая методология, его просто не надо пользовать, пользуйся fread(). Да, это и есть C. Обязательно прислушаюсь. Но чтобы перейти на c++ сначала книжку керригана надо все же от корки до корки пройти, а там с. Читай дальше, забудь про EOF, это неважно и сегодня ненужно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:46 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Dima T, Хотелось бы все же минимизировать пробелы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 20:51 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81 ну посмотрел отладчиком последний символ в переменной c имеет код x1a . ну это ж не eof никакой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 21:02 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
bk0010, То есть условие цикла смысла не имеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 21:04 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81 Dima T, Хотелось бы все же минимизировать пробелы Пробелы чего? Бесполезных знаний? Зачем? Книга писалась 50 лет назад, за это время кое-что поменялось, кое-что стало не актуальным. Но основа осталась как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 21:04 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81Мне показалось что последний. Тебе показалось. Продолжай отладку пока не произойдёт выход из цикла. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2020, 21:31 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81 bk0010, То есть условие цикла смысла не имеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 12:02 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
bk0010 bk0010, Но надо или вернуться к Visual Studio 6 а что вот это значит ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 12:38 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81а что вот это значит ? Ничего важного. Продолжай пошаговую отладку, не отвлекайся. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 12:55 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81а что вот это значит ? Ничего важного. Продолжай пошаговую отладку, не отвлекайся. да, спасибо. вроде бы получилось. eof научился вызывать. немного скорректировал код. примечательно, что спровоцировать eof получается только когда новая строка (поток пуст) и нажимаем Ctrl + z. Если я не прав и есть желание , то поправьте мои наблюдения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 13:17 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
сделай цикл с постусловием, может легче увидеть будет Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
andron81 да, спасибо. вроде бы получилось. eof научился вызывать. немного скорректировал код. примечательно, что спровоцировать eof получается только когда новая строка (поток пуст) и нажимаем Ctrl + z. Если я не прав и есть желание , то поправьте мои наблюдения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Потому что getchar() вернет ноль (оно же false) как в случае реального окончания файла, так и в случае нахождения строки с единственным символом EOF. А вот Dima T не слушай, он в этом топике глупости говорил. EOF унаследован не из С, а из телетайпов - задолго до С. Вот там, не было физического конца файла, потому и требовался специальный символ, а когда в 1960-ом году создавали "стандарт" ASCII просто взяли все имеющиеся на сегодня специальные буквы телетайпа и воткнули их на первые 32 знакоместа в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 17:31 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Да. Фондовые биржи до сих пор используют символ SOH (0x01) как разделитель между атрибутами биржевого протокола. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 18:38 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
getchar() возвращает int, не char. И EOF - это целое число, не совпадающее ни с одним возможным значение char. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 18:55 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Barlone getchar() возвращает int, не char. И EOF - это целое число, не совпадающее ни с одним возможным значение char. Вот и я так же прочитал в описании getchar. Так что скорее всего это никак не буква как писал товарищ выше. А скорее всего это состояние, ну то что определяется макросом это уже детали. Смущает только одно: почему я могу вызвать eof только когда поток пуст. То есть в этом случае я могу ctrl z щелкнуть. И тогда цикл именно МОЙ последний завершит работу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 19:06 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
А когда вы будете читать текстовый поток в юниксах, то состояние "конец файла" будет формировать символ Ctrl+D. "Вот это поворот" P.S. Работаете с API - следуйте документации этого API. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 19:48 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Basil A. Sidorov А когда вы будете читать текстовый поток в юниксах, то состояние "конец файла" будет формировать символ Ctrl+D. "Вот это поворот" P.S. Работаете с API - следуйте документации этого API. Разумеется. Я в первом сообщении и указал какая у меня операционка и кстати и от ide там зависит наверно тоже, не ctrl z, а возможно сам eof может быть описан другой константой. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 19:53 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
andron81а возможно сам eof может быть описан другой константой. А какой константой EOF описан у Вас? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 20:05 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Функции посимвольного чтения возвращают целое. Значения больше нуля - символы, а минус единица - признак конца ввода. Но пользоваться всё равно надо константой. Функция посимвольного чтения может возвращать символы с очень разными кодами, включая управляющие. Взялись работать на низком уровне - будьте готовы принять "необычные значения". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 20:06 |
|
как все же отловить eof
|
|||
---|---|---|---|
#18+
Barlonegetchar() возвращает int, не char. Вообще-то по-жизни (то есть изначально) она возвращала именно char. В int её перековали относительно недавно, когда внезапно обнаружилась буква "я" в кодировке Windows-1251. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 20:09 |
|
|
start [/forum/topic.php?fid=57&msg=39946226&tid=2017453]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 159ms |
0 / 0 |