Подключение необходимой директивы
Для работы с файлами необходимо подключить директиву fstream (file stream). Этот модуль обеспечивает возможности записи и чтения данных из файлов.
Запись данных в файл
Для записи информации в файл создаётся объект класса ofstream (output file stream). Этот класс позволяет открывать файл, записывать в него данные и закрывать его.
Создадим объект, например, file, и при его создании укажем параметры:
ofstream file("test.txt", ios::out);
Первый параметр — имя файла («test.txt»). Если файла не существует, он будет создан. Если файл уже существует, он будет открыт для перезаписи.
Второй параметр (ios::out) указывает на открытие файла для записи.
Важно проверить успешность открытия файла:
if (file.is_open()) {
// Код для работы с файлом, если он открыт
}
file.is_open() возвращает true, если файл успешно открыт, и false в противном случае.
Если файл открыт, можно записывать в него данные, используя оператор <<, аналогично cout:
file << "Hello world!" << endl;
После работы с файлом обязательно закройте его:
file.close();
Это освободит ресурсы оперативной памяти. Не закрытие файла может привести к ошибкам и нестабильной работе программы.
Чтение данных из файла
Для чтения данных из файла создадим объект класса ifstream (input file stream):
ifstream file("test.txt");
Здесь второй параметр не нужен, так как файл всегда открывается для чтения.
Считывание данных осуществляется аналогично cin, но вместо cin используется объект file. Для считывания всей строки используем функцию getline():
char temp[100];
if (file.is_open()) {
file.getline(temp, 100);
file.close();
cout << temp << endl;
}
getline() считывает до 100 символов или до символа новой строки. Результат выводится на экран. Для считывания по одному слову можно использовать оператор >>:
string temp;
if (file.is_open()) {
file >> temp;
file.close();
cout << temp << endl;
}
Эта конструкция считывает только первое слово.
В этом уроке мы освоили запись и чтение данных в файлы в C++. Помните о важности проверки открытия файла и его закрытия после работы для эффективного использования ресурсов и предотвращения ошибок.