Введение
В этом практическом занятии вы научитесь считывать и записывать файл построчно с использованием языка программирования C++. Вы создадите файл, запишите в него данные, а затем считайте его содержимое по одной строке.
Создание и открытие файла
Создайте файл на C++ с именем file_io.cpp в директории ~/project. В этом шаге вы создадите и откроете файл с именем example.txt.
#include <fstream>
int main() {
// Создание и открытие файла
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
ofs.close();
return 0;
}
Пояснение:
ofstream- это класс для записи в файлы.ofs- объект классаofstream.- Метод
open()используется для создания и открытия файла. - В методе
open()первый аргумент - это имя файла, который нужно создать, а второй аргумент задает режим, в котором файл должен быть открыт. Здесьoutзадает, что файл открыт для записи, аtruncзадает, что файл должен быть очищен, если он уже существует.
Запись в файл
В этом шаге вы запишете данные в файл example.txt.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
if (ofs.is_open()) {
std::cout << "Введите текст для записи в файл (Введите пустую строку для выхода):" << std::endl;
std::string line;
do {
std::getline(std::cin, line);
if (line.length()) {
ofs << line << std::endl;
}
} while (line.length());
ofs.close();
} else {
std::cerr << "Ошибка при открытии файла" << std::endl;
}
return 0;
}
Пояснение:
std::coutиспользуется для отображения сообщения на консоли, запрашивающего у пользователя ввести текст для записи в файл.std::getline()используется для чтения ввода пользователя построчно и сохранения его в переменнойline.if (line.length())используется для проверки, ввел ли пользователь какой-либо текст или нет. Если пользователь не ввел никакого текста, то цикл будет завершен.ofs << line << std::endl;используется для записи ввода пользователя в файл, за которым следует символ новой строки.std::cerrиспользуется для отображения сообщения об ошибке на консоли, если файл не может быть открыт.
Для запуска этой программы перейдите в директорию ~/project и выполните следующую команду:
g++ file_io.cpp -o file_io && ./file_io
Эта программа будет запрашивать у пользователя ввод текста для записи в файл и затем записывать введенные данные пользователя в файл.
Чтение из файла
В этом шаге вы прочитаете содержимое файла example.txt.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream ifs;
ifs.open("example.txt");
if (ifs.is_open()) {
std::cout << "Содержимое файла:" << std::endl;
std::string line;
while (std::getline(ifs, line)) {
std::cout << line << std::endl;
}
ifs.close();
} else {
std::cerr << "Ошибка при открытии файла" << std::endl;
}
return 0;
}
Пояснение:
std::ifstream- это класс для чтения из файлов.ifs- объект классаifstream.- Метод
open()используется для открытия существующего файла. - В методе
open()аргументом является имя файла, который нужно открыть. std::coutиспользуется для отображения сообщения на консоли, указывающего, что выводится содержимое файла.std::getline()используется для чтения содержимого файла построчно и сохранения его в переменнойline.std::cout << line << std::endl;используется для отображения содержимого файла построчно на консоли.
Для запуска этой программы перейдите в директорию ~/project и выполните следующую команду:
g++ file_io.cpp -o file_io && ./file_io
Эта программа будет отображать содержимое файла example.txt на консоли.
Резюме
В этом практическом занятии вы узнали, как создавать, записывать в и читать из файла с использованием языка программирования C++. Вы узнали, как использовать классы ofstream и ifstream для записи в и чтения из файлов соответственно. Также вы узнали, как использовать метод open() для создания и открытия файла, а метод getline() для чтения содержимого файла построчно.



