|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|||||||||||
Чтение из файла. Почему используется цикл do-while?29.06.2019, 14:48. Показов 3724. Ответов 21
Метки нет (Все метки)
В учебном примере для чтения из файла используется цикл do-while:
0
|
|||||||||||
| 29.06.2019, 14:48 | |
|
Ответы с готовыми решениями:
21
Цикл на чтение каждого файла в определенный массив
|
|
|
|
| 29.06.2019, 14:59 | |
|
В вашем варианте, если файл изначально пуст, то будет выведен символ -1 ('?')
Добавлено через 56 секунд (это неправильно, если что) Добавлено через 2 минуты В данном случае ваще нет разницы какой цикл использовать, дополнительную проверку в теле всё равно придётся делать
1
|
|
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
| 29.06.2019, 15:02 | |
|
alicesmagic3d, Если я не ошибаюсь, то значение -1 вы получаете когда доходите до конца файла, и логично что вы сначала считываете а потом смотрите "а не конец ли?!"
В случае что ниже, вы получаете конец, То есть -1, пытаетесь его кастовать в char, а поскольку char всегда выше нуля то получаете наверное исключение.
1
|
|
|
|
|
| 29.06.2019, 15:08 | |
|
К тому же вы инициализируете переменную i нулём прост для того, чтобы программа смогла войти в цикл. По вашему эт целесообразно?
Добавлено через 33 секунды ViktorFX, не, исключение не вылетит Добавлено через 4 минуты Да, если значение отрицательное, то прост выводит знак вопроса
0
|
|
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 29.06.2019, 15:08 [ТС] | |
|
А, ну да... на пустом файле работает некорректно.
Исключение не вылетает, но в консоль выводится вот это:  Спасибо за ответы!
0
|
|
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
| 29.06.2019, 15:09 | |
|
Gungala, а что будет? я в этих делах не силен, знаю что char начинается от нуля, и если везде используется do-while то значит так и надо. Везде так и незачем усложнять (даже если бы ничего не менялось) код который написан миллион раз, так даже читается легче.
0
|
|
| 29.06.2019, 15:15 | |
|
Не по теме: Gungala, у меня пока страница обновится проходит не мало времени. Часто так, ответ уже есть а я еще спрашиваю, сорян.
0
|
|
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 29.06.2019, 15:25 [ТС] | |
|
Мало того, после возвращения цикла do-while на прежнее место и удаления цикла while, из пустого файла все равно выводится на консоль эта штука: 
И даже когда я добавляю в файл строку, например: I am a blonde При чтении на консоль выводится: I am a blonde Блин! Вот чего можно устроить шаловливыми ручонками. Может кто-то объяснить, почему так происходит и как это убрать? Добавлено через 2 минуты После перезагрузки эклипса ничего не изменилось. Кракозябра вылезает немым укором ![]() Добавлено через 2 минуты Только после удаления файла и создания нового с таким же именем проклятье было снято. В чем была причина порчи файла? Жутко интересно)
0
|
|
| 29.06.2019, 15:48 | |||
|
Не по теме:
0
|
|||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
||||||||
| 29.06.2019, 18:31 | ||||||||
Сообщение было отмечено alicesmagic3d как решение
Решение
Добавлено через 4 минуты
3
|
||||||||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||||
| 29.06.2019, 18:46 [ТС] | ||||
![]() Добавлено через 4 минуты Добавлено через 10 минут
0
|
||||
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
||
| 29.06.2019, 19:17 | ||
|
В таком случае надо использовать буфер.
0
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||
| 29.06.2019, 19:32 [ТС] | ||
|
0
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||||||
| 30.06.2019, 00:07 [ТС] | ||||||
|
Вот в этом варианте неправильно?
0
|
||||||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
||||||
| 30.06.2019, 00:20 [ТС] | ||||||
|
Ну, ОК... запустите. У меня работает правильно.
0
|
||||||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
||
| 30.06.2019, 02:21 | ||
|
2
|
||
|
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
|
|
| 30.06.2019, 03:58 [ТС] | |
|
Ээх.. жаль. Так красиво выглядело. Ну, зато узнала что-то новенькое (хоть и не особо поняла пока то, что узнала)
![]() Спасибо! Добавлено через 4 минуты P.S. Gungala и ViktorFX мои извинения... Добавлено через 5 минут korvin_, но тогда же и исходный учебный пример (первый код в первом посте) сломается при выходе из диапазона? Так ведь?
0
|
|
| 30.06.2019, 03:58 | |
|
Помогаю со студенческими работами здесь
20
Не могу понять, почему не идёт чтение из текстового файла на форму! почему бесконечный цикл get() выводит последнюю букву много раз из файла Чтение из файла. Почему выравнивание по ширине ? Или как это назвать Как используется цикл в коде? Для чего используется цикл for в данном коде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|