/
dimass1km
/
laba_5.
Обзор
Документация
Войти
/
dimass1km
/
laba_5.
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
WorkWithFile.cpp
55 строк
2 KB
dimass1km
create: WorkWithFile.cpp
15 мар 2026, 17:42
Верифицирован
15 мар 2026, 17:42
ed39e0b
Код
Авторство
О чём код?
#include "workWithFile.h" #include <iostream> #include <fstream> #include <string> using namespace std; void inputFromFile(BtreeNode*& root, const string& filename) { ifstream file(filename); if (!file.is_open()) { cerr << "Ошибка: не удалось открыть файл " << filename << endl; return; } string line; int lineNum = 0; while (getline(file, line)) { ++lineNum; if (line.empty()) continue; user newUser; string token; stringstream ss(line); try { // Поле 1: Фамилия И.О. if (!getline(ss, newUser.name, ';')) throw runtime_error("Недостаточно полей"); // Поле 2: табельный номер if (!getline(ss, token, ';')) throw runtime_error("Недостаточно полей"); newUser.number = stoi(token); // Поле 3: стаж if (!getline(ss, token, ';')) throw runtime_error("Недостаточно полей"); newUser.WorkTime = stoi(token); // Поле 4: оклад if (!getline(ss, token, ';')) throw runtime_error("Недостаточно полей"); newUser.salary = stod(token); // Поле 5: специальность if (!getline(ss, newUser.profession, ';')) throw runtime_error("Недостаточно полей"); // Поле 6: id if (!getline(ss, token, ';')) throw runtime_error("Недостаточно полей"); newUser.id = stoi(token); root = addNode(root, newUser); } catch (const exception& e) { cerr << "Ошибка в строке " << lineNum << ": " << line << "\n" << "Причина: " << e.what() << ". Запись пропущена.\n"; } } file.close(); cout << "Загрузка из файла завершена.\n"; }