logo
ООП для Заоч / Пинчук Лозовская Программир на С

Int descr(fstr& f)

{ return (f.rdbuf())->fd();

}

void main()

{ char *a="A.dat", *b="B.dat", *c="C.dat";

ifstream fa(a);

ofstream fb(b);

fstream fc(c,ios::in|ios::out);

cout << " Дескриптор файлу " << a << " = " << descr(fa) << endl;

cout << " Дескриптор файлу " << b << " = " << descr(fb) << endl;

cout << " Дескриптор файлу " << c << " = " << descr(fc) << endl;

}

Далі, у наведеному прикладі для отримання дескриптору файла застосовується макрос-функція ED(stream).

// Приклад 9

#include <fstream.h>

#define FD(s) (((s).rdbuf())->fd())

void main()

{ char *a="A.dat", *b="B.dat", *c="C.dat";

ifstream fa(a);

ofstream fb(b);

fstream fc(c,ios::in|ios::out);

cout << "Дескриптор файлу " << a << " = " << FD(fa) << endl;

cout << "Дескриптор файлу " << b << " = " << FD(fb) << endl;

cout << "Дескриптор файлу " << c << " = " << FD(fc) << endl;

}

У прикладі, що наведено нижче, потоки і функція getline з модулю syst.h застосовується для порівняння двох текстових файлів по рядках. Якщо два відповідних рядка не співпадають, вони виводяться на екран. Робота циклу while завершується, якщо рядки хоча б в одному з файлів вичерпано. У програмі застосовується спеціальний рядковий тип string.

// Приклад 10

#include <syst.h>