Двоичные файлы
С двоичным файлом удобно работать тогда, когда данные записала (или будет читать)
другая программа и их не надо просматривать вручную. Основное преимущество этого способа— скорость чтения и записи, поскольку весь массив читается (или записывается) сразу единым блоком. При этом функциям freadи fwriteнадо указать размер одного элемента массива и количество таких элементов, то есть M*N.
В программе, которая приведена ниже, матрица читается из двоичного файла, затем с ней
выполняются некоторые действия (они обозначены многоточием) и эта же матрица записывается в выходной файл.
#include <stdio.h>
const int M = 5; // числострок
const int N = 4; // числостолбцов
Main()
{
int total, A[M][N];
FILE *fp;
fp = fopen("input.dat", "rb");
total = fread(A, sizeof(int), M*N, fp); // чтениематрицы
Fclose ( fp );
if ( total != M*N ) // обработкаошибки
{
printf("Не хватает данных");
return 1; // выход по ошибке, код ошибки 1
}
// работа с матрицей
fp = fopen("output.dat", "wb"); // запись матрицы в файл
if ( M*N != fwrite(A, sizeof(int), M*N, fp) )
printf("Ошибка записи в файл");
Fclose ( fp );
}
Для обработки ошибок используется тот факт, что функции fread и fwriteвозвращают ко-
личество реально прочитанных (записанных) элементов, и если оно не равно заданному (M*N),то произошла ошибка.
Дата добавления: 2015-10-05; просмотров: 828;