Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
x_files_01
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 4
#1

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

14.03.2013, 01:34. Просмотров 426. Ответов 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 байта и как сделать правильно без потери данных?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 01:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните работу функции fread() (C++):

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

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

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

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

Функции fread() и fwrite() - C++
Меня интересует что это за "счётчик" в этих функциях fwrite( massiv, *size_int * sizeof(unsigned int), 1, fp); <= в большинстве примеров...

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

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

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

Бинарное чтение из файла с пoмощью функции fread() - C++
Подскажите, пожалуйста, почему feof() может возвращать конец файла далеко до его реального конца? Конец проверяется из обозревателя файлов...

Объясните работу ф-ии memmove - C++
Я не понимаю как работает ф-ия memmove. Объясните пожалуйста на простом, доступном языке, как она работает.

Объясните работу программы - C++
Есть программа с рекурсивной функцией, которая меняет порядок значениий в массиве наоборот. Объясните, пожалуйста, как она это делает ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.03.2013, 21:04
Ответ Создать тему
Опции темы

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