В) Блок I / O
инт фрида (void * p, int size,
инт fwrite (void * p, int size,
В блоковите входно/изходни функции броят на байтовете се определя по малко сложен начин: въвежда се терминът "блок". Това е напълно конвенционална единица, което означава всеки определен брой байтове. Програмистът трябва да посочи както "размер на блока", така и "брой блокове"; действителният брой байтове ще бъде техният продукт. Този формат е удобен при четене/запис на масив като цяло.
Резултатът от тези функции е броят на успешно прочетените/написаните блокове. Тя е равна на n или по-малко (ако е невъзможно да се прочетат/запишат n блока). Неравенството на резултата спрямо стойността на n е знак или за неуспех, или за достигане до края на файла.
Например, ако масив от цели числа се съхранява във файл и размерът му е неизвестен (известно е само, че не надвишава 10000), тогава целият масив и дължината му могат да бъдат прочетени с една команда:
n = fread (a, sizeof (int), 10000, f);
Тук се опитваме да прочетем 10 000 "блока" в масив, където всеки блок е един int; всъщност ще бъдат прочетени толкова числа, колкото са във файла, и този номер е присвоен на n.
Коментирайте. Функциите на блок I/O са трудни за прилагане към променлива тип Струна, от по тип Струна (вижте темата "Струни") текстът се съхранява отделно от самата променлива, която е само указател към този текст. Ако трябва да изпълните блок I/O на структура, съдържаща текст, препоръчително е да декларирате текстовите й полета не като Струна, но като масив char.
г) Проверете дали е достигнат краят на файла
Вместо горните методи за определяне на „невъзможността за по-нататъшно четене“, можете да използвате функцията feof ():
Връща ненулево,ако преди това е имало неуспешен опит за четене след края на файла.Така че, акоfeof () не е равно на нула, тогава е достигнат краят на файла и последната стойност, прочетена от файла, е невярна и трябва да се игнорира.
Можете също да използвате функцията filelength (), описана по-долу.
д) измиване на файловия буфер
Имайте предвид, че ако файлът не е бил затворен след запис на данните, някои от „записаните“ данни може да не бъдат запазени. Това е така, защото данните първо се записват в файлов буфер, и само след попълването му или затварянето на файла - на диск. Ако трябва, без да затваряте файла, въпреки това да се уверите, че всички I/O операции се изпълняват физически, можете да извикате функцията „изпускане буфер " файл fflush ():
Калкулатор
Безплатна услуга за оценка
- Попълнете заявлението. Експертите ще изчислят цената на вашата работа
- Изчисляването на разходите ще бъде изпратено по пощата и чрез SMS
Номер на вашето заявление
Автоматично писмо за потвърждение с информация за приложението ще бъде изпратено на пощата точно сега.
- Блок I/O
- Изпълнение на работата по устройството на външното осветление като част от изграждането и пускането в експлоатация
- Американец скочи без парашут от височина 7, 6 километра
- Главното военно временно управление отговаря за военната служба на чужденците в руската армия - Российская газета
- Показания за винпоцетин за употреба пълен анализ на лекарството - Интернет списание за момичета