Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
x_files_01
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
#1

Объясните работу функции fread()

14.03.2013, 01:34. Просмотров 460. Ответов 4
Метки нет (Все метки)

Возникла проблема при чтении файла по частям.
Вообщем задача состоит в том что нужно считывать 64 байта с файла, записывать их в некий массив, потом выполнить определенные действия и снова считать определенную порцию данных из файла.
Вот франмент кода:
Кликните здесь для просмотра всего текста


C
1
2
3
4
5
6
7
8
9
FILE * in = fopen("input.txt", "rb");
// message
    char M[2500];
    
    while (!feof(in))
    {
        fread (M,1,64,in);
                     ............
    }


Что будет если при последнем считывании партии данных из файла их меньше чем 64 байта и как сделать правильно без потери данных?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 01:34
Ответы с готовыми решениями:

Объясните работу функции
Объясните некоторые моменты из программы. Функция ReplaceKey заменяет ключ...

C++1z — std::unordered_map::try_emplace — объясните работу функции
Всем привет! Не могу разобраться с функцией std::unordered_map::try_emplace...

Объясните работу рекурсивной функции из книги Г. Шилдта
Здравствуйте.Вопрос такой ,самостоятельно изучаю с++ по книге Герберта...

Функции fread() и fwrite()
Меня интересует что это за "счётчик" в этих функциях fwrite( massiv, *size_int...

Параметры функции fread
Вот программа: _____________________ #include <iostream> #include <stdio.h>...

4
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
14.03.2013, 01:37 #2
Цитата Сообщение от x_files_01 Посмотреть сообщение
Что будет если при последнем считывании партии данных из файла их меньше чем 64 байта
считается столько, сколько есть.
Цитата Сообщение от x_files_01 Посмотреть сообщение
как сделать правильно без потери данных?
Зависит от того, что тебе делать надо. А так, проверь, что вернулось из функции и пляши от значения.
1
x_files_01
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
14.03.2013, 01:55  [ТС] #3
То есть, если функция возвращает, например, значение 40, то необходимо завершить считывание или оно само остановится так как есть условие while(!feof(...))?
0
GoldenId
131 / 130 / 64
Регистрация: 11.11.2010
Сообщений: 770
Записей в блоге: 14
Завершенные тесты: 1
14.03.2013, 03:27 #4
как вариант
C++
1
2
3
4
5
while (!feof(in))
 {
 if( fread (M,1,64,in) != 64 )
    break;
 }
1
x_files_01
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
14.03.2013, 21:04  [ТС] #5
Спасибо, более-менее понятно)
0
14.03.2013, 21:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2013, 21:04

Аналог функции fread С++
Проблема собственно вот в чем, У меня есть структура некой базы данных, и...

Аналог С функции fread и fwrite в С++
Здравствуйте, какие есть аналоги функций fread() fwrite в С++?

Как работают функции fwrite и fread
объясните мне пожалуйста функции fwrite и fread.Буду очень благодарен!:scratch:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru