Введение
В этом практическом занятии вы научитесь считывать и записывать файл построчно с использованием языка программирования C++. Вы создадите файл, запишите в него данные, а затем считайте его содержимое по одной строке.
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
В этом практическом занятии вы научитесь считывать и записывать файл построчно с использованием языка программирования 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()
для чтения содержимого файла построчно.