Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

9 пр

.docx
Скачиваний:
1
Добавлен:
20.01.2024
Размер:
107.23 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ИМ. А.А. УГАРОВА

(филиал) федерального государственного автономного образовательного

учреждения высшего образования

«Национальный исследовательский технологический университет «МИСиС»

​Лабораторная работа № 9 

на тему 

«Хранение данных на внешних носителях»

​Выполнил: Студент группы № АТ 22-2з 

 

​Старый Оскол, 2024

Цель работы:

1. Получение практических навыков записи структурированной информа-ции в файлы в стиле С;

2. Получение практических навыков записи структурированной информа-ции в файлы в стиле С++;

Вариант 8

1. Используя ввод-вывод в стиле С ++ создать файл и записать в него структурированные данные.

2. Вывести созданный файл на экран.

3. Удалить из файла данные в соответствии с вариантом.

4. Добавить в файл данные в соответствии с вариантом.

5. Вывести измененный файл на экран.

#include <iostream>

#include <fstream>

#include <string>

// Структура для хранения данных о покупателе

struct Customer {

std::string lastName;

std::string firstName;

std::string middleName;

std::string address;

std::string phoneNumber;

std::string creditCardNumber;

};

int main() {

setlocale(LC_ALL, "RU");

// Создаем и открываем файл для записи

std::ofstream outputFile("customers.txt", std::ios::app);

if (!outputFile.is_open()) {

std::cerr << "Ошибка открытия файла!" << std::endl;

return 1;

}

// Записываем данные о покупателе в файл

Customer customer;

customer.lastName = "Иванов";

customer.firstName = "Иван";

customer.middleName = "Иванович";

customer.address = "ул. Пушкина, д. 10";

customer.phoneNumber = "+7 (123) 456-7890";

customer.creditCardNumber = "1234-5678-9012-3456";

outputFile << customer.lastName << ' ' << customer.firstName << ' ' << customer.middleName << ' '

<< customer.address << ' ' << customer.phoneNumber << ' ' << customer.creditCardNumber << '\n';

// Закрываем файл

outputFile.close();

// Открываем файл для чтения

std::ifstream inputFile("customers.txt");

if (!inputFile.is_open()) {

std::cerr << "Ошибка открытия файла!" << std::endl;

return 1;

}

// Выводим содержимое файла в консоль

std::cout << "Содержимое файла:\n";

std::string line;

while (std::getline(inputFile, line)) {

std::cout << line << '\n';

}

// Закрываем файл

inputFile.close();

// Открываем файл для обновления данных

std::fstream updateFile("customers.txt", std::ios::in | std::ios::out);

if (!updateFile.is_open()) {

std::cerr << "Ошибка открытия файла!" << std::endl;

return 1;

}

// Количество элементов для удаления

int K = 1;

// Удаляем K элементов из начала файла

for (int i = 0; i < K; ++i) {

std::getline(updateFile, line); // Пропускаем K строк

}

// Количество элементов для добавления

int N = 2;

// Номер элемента, с которого начинаем добавление

int startElement = K + 1;

// Добавляем N элементов в файл

for (int i = 0; i < N; ++i) {

// Перемещаемся к позиции для добавления

updateFile.seekp(updateFile.tellg());

updateFile << "Новый_покупатель Новый Адрес +7 (987) 654-3210 9876-5432-1098-7654\n";

}

// Закрываем файл

updateFile.close();

// Открываем файл для чтения обновленных данных

std::ifstream updatedFile("customers.txt");

if (!updatedFile.is_open()) {

std::cerr << "Ошибка открытия файла!" << std::endl;

return 1;

}

// Выводим обновленное содержимое файла в консоль

std::cout << "Обновленное содержимое файла:\n";

while (std::getline(updatedFile, line)) {

std::cout << line << '\n';

}

// Закрываем файл

updatedFile.close();

return 0;

}

Соседние файлы в предмете Основы программирования