double arrow

Функция fread

Функция

#include <stdio.h>

size_t fread(void *ptr, size_t size, size_t n, FILE * stream);

считывает n элементов данных, каждый длиной size байтов, из потока stream в блок с адресной ссылкой ptr. Общее число вводимых байт равно n x size.

При успешном завершении функция возвращает количество элементов данных (не байтов), реально прочитанных.

В случае достижения конца файла или возникновения ошибки функция fread возвращает short count (возможно 0).

Пример:

#include<string.h>

#include<stdio.h>

int main(void)

{ FILE *stream;

char msg[] = "Тестовый пример";

char buf[20];

if(stream = fopen("DUMMY.FIL","w+")) == NULL)

{ fprintf(stderr,"Не могу открыть файл\n");

return 1;

}

/* вывести в файл данные */

fwrite(msg,strlen(msg)+1,1,stream);

/* перейти на начало файла */

fseek(stream,SEEK_SET,0);

/* прочитать данные */

fread(buf,strlen(msg)+1,1,stream);

printf("%s\n",buf);

fclose(stream);

return 0;}

Функция fwrite

Функция

#include <stdio.h>

size_t fwrite(void * ptr, size_t size, size_t n, FILE * stream);

добавляет n элементов данных, каждое величиной size байт в данный выходной поток. Данные записываются из ptr. Общее число выведенных байт равно n*size. ptr должен быть объявлен как указатель на некоторый объект.

При успешном завершении fwrite возвращает число выведенных элементов (не байт). При ошибке она возвращает меньшее число.

Пример:

#include<stdio.h>

struct mystruct

{

int i;

char ch;

}

int main(void)

{

FILE *stream;

struct mystruct s;

/* открыть файл TEST.$$$ */

if((stream = fopen("TEST.$$$","wb"))==NULL)

{

fprintf(stderr,"не могу открыть файл\n");

return 0;

}

s.i = 0;

s.ch = 'A';

/* вывод в файл */

fwrite(&s,sizeof(s),1,stream);

fclose(stream);

return 0;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: