- •Int fact(int n)
- •Int fact(int n)
- •Void main()
- •Void main()
- •Void main()
- •Int AkkR(int m, int n);
- •Int main()
- •Int AkkR(int m, int n)
- •Int main()
- •Int smacc(int, int);
- •Int test(char *s, char *r)
- •Void main() { Stepp(""); }
- •Int step(int X, int y)
- •If (step(X-1, y))
- •If (step(X, y-1))
- •Void main(void)
- •Void main()
- •Int rings;
- •Init(rings);
- •Void convert (int z)
- •Void f(struct man *q)
- •Int mark[4];
- •Void main()
- •Void proc(man *p)
- •Void main()
- •Void main()
- •Int telephon;
- •Void main()
- •Void fNumber(number * const doc)
- •Void main()
- •Int main()
- •Void main()
- •Void main()
- •Void main()
- •Int fgets (char *s, int m, file *f);
- •Int fputs (char *s, file *f);
- •Void main()
- •Int fread( void *ptr, int size, int n,
- •Int fwrite( void *ptr, int size, int n,
- •Int rate;
- •Void main()
- •Int fseek(file *fp, long pos, int mode);
- •Void main()
- •Int np, n, I; long p[5]; char str[80];
- •Void main()
- •Int main() {
- •Int fread (void *buf, int size, int nrec, file *fd);
- •Int fwrite (void *buf, int size, int nrec, file *fd);
- •Int main()
- •Int main()
- •Infl.Open(“a.Txt”);
- •If (!infl) … //открытие успешно
- •Int main()
- •Inout.Seekg(0);
- •Int main()
- •Void main()
- •Void main()
- •Void main(void)
- •Ifstream prm2("a.Txt") ;
- •If (prm2.Fail())
Void main()
{ FILE *ut;
char SS[] = "This is… \n";
char *p; p = SS;
ut = fopen("d.txt", "w");
while ( (*p !='\0') && fputc(*(p++), ut) != EOF) ;
fclose(ut);
}
Пример
FILE *stream; char buffer[81]; int i, ch; stream = fopen( "crt_fopen.c", "r+w" );
if( stream == NULL ) exit( 0 ); ch = fgetc( stream);
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ ) { buffer[i] = (char)ch;
ch = fgetc( stream ); }
Блоковый ввод-вывод
Int fread( void *ptr, int size, int n,
FILE *fp);
void *ptr – указатель на область памяти, в которой размещаются считываемые из файла данные;
int size – размер одного считываемого элемента;
int n – количество считываемых элементов;
FILE *fp – указатель на файл, из которого производится считывание.
В случае успешного считывания информации функция возвращает число прочитанных элементов (а не байтов), иначе – EOF.
Int fwrite( void *ptr, int size, int n,
FILE *fp);
void *ptr – указатель на область памяти, в которой размещаются записываемые в файл данные;
int size – размер одного записываемого элемента;
int n – количество элементов;
FILE *fp – указатель на файл, в который производится запись.
В случае успешной записи информации функция возвращает число записанных элементов, иначе – EOF.
Пример. Ввод и вывод двух структур
#include <iostream>
using namespace std;
typedef struct
{ char name[40];
Int rate;
} Emp;
Void main()
{ FILE *f;
int i; Emp ms; Emp mas[3];
f = fopen("f.dat", "w+");
if (f == NULL)
{ cout<<"File not open";
exit(1);
}
for (i = 1; i <= 2; i++) //формирование структуры ms
{ cout<<"name="; cin>>ms.name;
cout<<"rate="; cin>>ms.rate;
fwrite(&ms, sizeof(ms), 1, f); //запись
if (ferror(f) != 0)
{ cout<<"Error"; exit(2); }
}
fclose(f);
f = fopen("f.dat", "rb");
if (f == NULL)
{ cout<<"File not open"; exit(3); }
i = 0;
while (!feof(f)) //чтение структуры
{ fread(&mas[i], sizeof(Emp), 1, f);
i++;
}
fclose(f);
for (i = 0; i < 2; i++)
cout<<mas[i].name<<' '<<mas[i].rate <<endl;
}
Функция void exit(int exit_code) вызывает завершение программы. Если параметр exit_code равен нулю, предполагается нормальное завершение программы. Ненулевое значение используется для индикации ошибки.
Функция ferror(fp) тестирует поток на ошибки чтения/записи. Если в файле была обнаружена ошибка, то функция возвращает ненулевое значение.
Позиционирование в файле
Текущая позиция – это номер байта, начиная с которого производится очередная операция чтения/записи.
При открытии файла текущая позиция устанавливается на начало файла, после чтения-записи порции данных перемещается вперед на размерность этих данных.
Для дополнения файла новыми данными надо установить текущую позицию на конец файла и выполнить операцию записи.
Текущая позиция представляется в программе переменной типа long.
Для работы с ней в станд. библиотеке имеются две функции:
long ftell(FILE *fp);
возвращает текущую позицию в файле. Если текущая позиция не определена, функция возвращает -1L.
Вторая функция устанавливает текущую позицию в файле на байт с номером pos: