Äëÿ áëîêîâîãî ââîäà-âûâîäà èñïîëüçóþòñÿ ôóíêöèè:
1) int fread(void*ptr,int size, int n, FILE*f), ãäå
void*ptr – óêàçàòåëü íà îáëàñòü ïàìÿòè, â êîòîðîé ðàçìåùàþòñÿ ñ÷èòàííûå èç ôàéëà äàííûå,
int size – ðàçìåð îäíîãî ñ÷èòûâàåìîãî ýëåìåíòà,
int n – êîëè÷åñòâî ñ÷èòûâàåìûõ ýëåìåíòîâ,
FILE*f – óêàçàòåëü íà ôàéë, èç êîòîðîãî ïðîèçâîäèòñÿ ñ÷èòûâàíèå.
 ñëó÷àå óñïåøíîãî ñ÷èòûâàíèÿ ôóíêöèÿ âîçâðàùàåò êîëè÷åñòâî ñ÷èòàííûõ ýëåìåíòîâ, èíà÷å – EOF.
2) int fwrite(void*ptr,int size, int n, FILE*f), ãäå
void*ptr – óêàçàòåëü íà îáëàñòü ïàìÿòè, â êîòîðîé ðàçìåùàþòñÿ ñ÷èòàííûå èç ôàéëà äàííûå,
int size – ðàçìåð îäíîãî çàïèñûâàåìîãî ýëåìåíòà,
int n – êîëè÷åñòâî çàïèñûâàåìûõ ýëåìåíòîâ,
FILE*f – óêàçàòåëü íà ôàéë, â êîòîðûé ïðîèçâîäèòñÿ çàïèñü.
 ñëó÷àå óñïåøíîé çàïèñè ôóíêöèÿ âîçâðàùàåò êîëè÷åñòâî çàïèñàííûõ ýëåìåíòîâ, èíà÷å – EOF.
Ïðèìåð:
struct Employee
{
char name[30];
char title[30];
float rate;
};
void main()
{
Employee e;
FILE *f;
if((f=fopen(“f.dat”,”wb”))==NULL)
{
cout<<” Cannot open file for writing”;
exit(1);
}
int n;
//çàïèñü â ôàéë
printf(“ N-?”);
scanf(“%d”,&n);
for(int i=0;i<n;i++)
{
//ôîðìèðóåì ñòðóêòóðó å
printf(“ name:”);scanf(“%s”,&e.name);
printf(“ title:”);scanf(“%s”,&e.title);
printf(“ rate:”);scanf(“%s”,&e.rate);
//çàïèñûâàåì å â ôàéë
fwrite(&e,sizeof(Employee),1,f);
}
fclose(f);
//÷òåíèå èç ôàéëà
if((f=fopen(“f.dat”,”rb”))==NULL)
{
cout<<” Cannot open file for reading”;
exit(2);
}
while(fread(&e,sizeof(Employee)1,f)
{
printf(“%s % s%f”, e.name, e.title, e.rate)
}
fclose(f);
}