Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Все действия по чтению-записи данных в файл можно разделить на три группы:
– операции посимвольного ввода-вывода;
– операции построчного ввода-вывода;
– операции ввода-вывода по блокам.
Рассмотрим основные функции для записи-чтения данных из файлов.
Для работы с текстовыми файлами в библиотеке языка Си содержится достаточно много функций, самыми распространенными из которых являются функции
fprintf, fscanf, fgets, fputs.
Формат параметров этих функций практически такой же, как и формат рассмотренных ранее (см. разд. 5.3, 5.4) функций printf, scanf, gets и puts. Так же практически совпадают и действия этих функций. Отличие состоит в том, что printf и другие функции работают по умолчанию с экраном монитора и клавиатурой, а функции fprintf и другие – с файлом, указатель которого является одним из параметров этих функций.
Рассмотрим общий пример создания текстового файла:
#include<stdio.h>
void main(void)
{
FILE *f1;
int a=2, b=3;
if(! (f1 = fopen(“d:\\work\\f_rez.txt”,”w+t”))) { // f 1 = NULL
puts(“Open File Error!”);
return; // exit (1);
}
fprintf(f1,”\t Файл результатов \n”);
fprintf(f1,” %d плюс %d = %d\n”, a, b, a+b);
fclose(f1);
}
Просмотрев содержимое файла любым текстовым редактором, можно убедиться, что данные в нем располагаются точно так, как на экране, если воспользоваться функцией printf с такими же списками параметров.
Создание текстовых результирующих файлов обычно необходимо для оформления отчетов, различных документов, а также других текстовых материалов.
Бинарные (двоичные) файлы обычно используются для организации баз данных, состоящих, как правило, из объектов структурного типа. При чтении-записи бинарных файлов удобнее всего пользоваться функциями fread и fwrite, которые выполняют ввод-вывод данных блоками.
Такой способ обмена данными требует меньше времени.
Функция
unsigned fread (void * p, unsigned size, unsigned n, FILE * f);
выполняет считывание из файла f n блоков размером size байт каждый в область памяти, адрес которой p. В случае успеха функция возвращает количество считанных блоков. При возникновении ошибки или по достижении признака окончания файла – значение EOF (End Of File – признак окончания файла).
Обратное действие выполняет функция:
unsigned fwrite (void * p, unsigned size, unsigned n, FILE * f);
при вызове которой в файл f будет записано n блоков размером size байт каждый из области памяти, начиная с адреса p.
Дата публикования: 2015-09-17; Прочитано: 210 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!