0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
1

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

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

Author24 — интернет-сервис помощи студентам
Возникла проблема при чтении файла по частям.
Вообщем задача состоит в том что нужно считывать 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2013, 01:34
Ответы с готовыми решениями:

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

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

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

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

4
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.03.2013, 01:37 2
Цитата Сообщение от x_files_01 Посмотреть сообщение
Что будет если при последнем считывании партии данных из файла их меньше чем 64 байта
считается столько, сколько есть.
Цитата Сообщение от x_files_01 Посмотреть сообщение
как сделать правильно без потери данных?
Зависит от того, что тебе делать надо. А так, проверь, что вернулось из функции и пляши от значения.
1
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
14.03.2013, 01:55  [ТС] 3
То есть, если функция возвращает, например, значение 40, то необходимо завершить считывание или оно само остановится так как есть условие while(!feof(...))?
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
14.03.2013, 03:27 4
как вариант
C++
1
2
3
4
5
while (!feof(in))
 {
 if( fread (M,1,64,in) != 64 )
    break;
 }
1
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
14.03.2013, 21:04  [ТС] 5
Спасибо, более-менее понятно)
0
14.03.2013, 21:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2013, 21:04
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru