Запись-чтение информации

Все действия по чтению-записи данных в файл можно разделить на три группы:

– операции посимвольного ввода-вывода;

– операции построчного ввода-вывода;

– операции ввода-вывода по блокам.

Рассмотрим основные функции для записи-чтения данных из файлов.

Для работы с текстовыми файлами в библиотеке языка Си содержится достаточно много функций, самыми распространенными из которых являются функции

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”) ) ) { // f1 = 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-11; просмотров: 666;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.