Часто виникає потреба опрацьовувати інформацію, розміщену на зовнішніх носіях (на дисках), або виводити результати програми не на екран монітора, а у файл. Прикладами таких даних є інформація про розклад руху транспорту, успішність студентів, наявність товарів в магазинах, адреси, анкетні дані тощо.
Файл - це сукупність даних, які розміщені на зовнішньому носії, зокрема, на жорсткому диску. Дані у файлі називаються елементами. Кількість даних під час опрацювання файлів не назначають. Файли можуть містити як текстову, так і числову інформацію.
Для роботи з файлами потрібно підключити бібліотеку fstream.h.
Під файлом, звичайно, розуміють іменовану інформацію на зовнішньому носієві, наприклад, на жорсткому або магнітному диску. Логічний файл можна представити як скінченну послідовність байтів, тому такі пристрої, як дисплей, клавіатуру і принтер також можна розглядати як частовий випадок файлів.
За способом доступу файли можна розділити на послідовні, читання і запис в які відбувається байт за байтом, і файли з довільним доступом, які допускають читання і запис в вказану позицію.
Стандартна бібліотека містить три класи для роботи з файлами:
ifstream - клас вхідних файлових потоків;
ofstream - клас вихідних фалових потоків;
fstream - клас двонапрямлених файлових потоків.
Використання файлів в програмі передбачає наступні операції:
- створення потоку;
- відкриття потоку і зв"язування його з файлом;
- обмін (ввід/вивід);
- знищення потоку;
- закриття файлу.
Приклади програм з використанням файлів для вводу/виводу
// C++ stdio
#include <stdio.h>
int main()
{
FILE *inf = fopen("input.txt", "r");
FILE *outf = fopen("output.txt", "w");
int a = 0;
fscanf(inf, "%d", &a);
fprintf(outf, "%d %d\n", a/10, a%10);
fclose(inf);
fclose(outf);
return 0;
}
// C++ fstream
#include<fstream.h>
int main()
{
ifstream inf("input.txt");
ofstream outf("output.txt");
int a = 0;
inf>>a;
outf<<a/10<<" "<<a%10<<"\n";
inf.close();
outf.close();
return 0;
}