Работа с файлами

Файл – это поименованная часть памяти диска, которая содержит некоторый набор записей [32]. В С++ средства для доступа к файлам объявлены в заголовочном файле fstream, которыйнеобходимо включить в программный код при работе с файлами.Для обозначенияисточника либо приемника данных применяется термин «поток». Потоки для работы с файлами создаются как объекты следующих классов:

§ ofstream – для вывода (записи) данных в файл;

§ ifstream – для ввода (чтения) данных из файла;

§ fstream – для чтения и записи данных (двунаправленный обмен).

Имя файла задается либо при создании объекта, либо при использовании метода open(). В качестве примера рассмотрим пример с двойной сортировкой (см. листинг 5.2), но информацию нужно получать из файла.

Листинг 6.1. В текстовом файле «input.txt» записана следующая информация: число студентов, а затем идут парой фамилия и номер группы (рис. 6.1). Необходимо преобразовать этот список так, чтобы он оказался отсортированным по группам и внутри каждой группы в алфавитном порядке. Полученный список вывести на экран дисплея и записать в файл.

//L6_1.cpp

#include <string.h>

#include <fstream>

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_CTYPE,"russian");

int n,i,*grup,f,k=0,gtmp;

char**name,*ntmp,fam[30];

fstream ff("input.txt"); // Соэдание объекта ff и открытие файла

ff>>n;

name=new char*[n]; // Выделение памяти для указателей,

// связанных с фамилией студентов.

grup=new int[n]; // Выделение памяти под номера групп

for(i=0;i<n;i++)

{

ff>>fam>>grup[i];

name[i]=strdup(fam); // Заполняется фамилия i-го студента

}

ff.close(); // Закрытие файла

... // См. листинг 5.2

ff.open("input.txt",ios::app); // Открытие файла для пополнения

ff<<"\nПолученный список\n";

for(i=0;i<n;i++)

{

ff.width(6);

ff<<grup[i]<<" ";

ff<<name[i]<<'\n';

}

ff.close(); // Закрытие файла

return 0;

}

Содержимое файла “input.txt”

Рис. 6.1. Информация, находящаяся в файле «input.txt»

На рис. 6.2 приведен результат выполнения программы листинга 6.1.

Рис. 6.2. Результат работы программы листинга 6.1


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



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