|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.01.2023, 22:17 | #1 |
Новичок
Джуниор
Регистрация: 06.11.2022
Сообщений: 3
|
Как прочитать бинарный файл c++ с конца ?
fin.seekg(0, fin.end) не работает
Код:
Последний раз редактировалось agent2; 17.01.2023 в 22:22. Причина: ПРАВКА |
17.01.2023, 22:36 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Так вы устанавливаете указатель файла в самый конец. Там больше нечего читать и поэтому цикл while не будет работать.
Чтобы считать int вам надо отступить от конца файла на -4 и считать этот int Код:
Последний раз редактировалось macomics; 17.01.2023 в 22:50. |
17.01.2023, 22:52 | #3 |
Новичок
Джуниор
Регистрация: 06.11.2022
Сообщений: 3
|
macomics, а как сделать чтобы имменно все цифры из файла выводились с конца ? указываю больше отступ появляются неправильные значения
|
17.01.2023, 23:03 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Ну смотрите. Опишу словами. Вот вы установили указатель в самый конец файла. Тогда при попытке чтения из файла функция вернет ошибку потому что нет данных для считывания.
Если вы отступите от конца файла на 1*sizeof(int) тогда до конца файла останутся байты позволяющие считать int. Функция чтения при этом сможет удачно его считать и переместит указатель в файле на sizeof(int) и он опять установится в самый конец файла. Если после функции чтения вы от fin::cur отступите назад на sizeof(int), тогда вы отмените тот переход, который сделала функция read. А вам надо перейти к предыдущему элементу, а не к тому же самому. Тогда надо отступить назад на 2*sizeof(int). Проблемы начинаются в начале файла. Проще всего получить длину файла и разделить на sizeof(int) и вместо while использовать for. |
18.01.2023, 00:33 | #5 |
Новичок
Джуниор
Регистрация: 06.11.2022
Сообщений: 3
|
с++ Открыть бинарный файл, заполненный случайными целыми числами
Открыть бинарный файл, заполненный случайными целыми числами в диапазоне [-10...20]. Количество чисел в файле заранее неизвестно. Найдите максимальный и минимальный элемент в файле. Все числа, находящиеся между ними, вывести на экран в обратном порядке. Массивы не использовать
Пытался сам чтото написать Код:
|
19.01.2023, 05:49 | #6 | |
Форумчанин
Регистрация: 26.10.2022
Сообщений: 119
|
agent2, попробуйте так:
Код:
Цитата:
Обычно консольные программы делают так, что ноль возвращается в случае успеха, а если случилась ошибка, то возвращается не ноль. По науке для этого даже специальные константы есть: EXIT_SUCCESS, EXIT_FAILURE. Но их редко используют. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
прочитать stringlist с конца | nibufep | Общие вопросы Delphi | 2 | 06.05.2016 00:39 |
C++, задача на бинарный файл (Бинарный файл состоит из записей по 5 бит) | zaitsevmishka | Помощь студентам | 3 | 16.05.2014 21:39 |
Бинарный файл. Чтение записи с конца. | rommster | Общие вопросы C/C++ | 30 | 12.12.2012 23:45 |
Прочитать бинарный файл | Lazan | Помощь студентам | 6 | 16.06.2010 14:19 |
Не могу прочитать файл до конца... | FEAR | Общие вопросы C/C++ | 9 | 04.01.2007 21:46 |