Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 05.05.2019, 16:27   #1
Thereareloveyou
Новичок
Джуниор
 
Регистрация: 05.05.2019
Сообщений: 1
По умолчанию Как оформить удаление нужных строк из текстового файла в с++

Столкнулся с такой проблемой
Задали курсовую
Нужно написать программу для аэропорта
Должны присутстовавать следующие пункты
1.Занесение завяки в базу
2.Вывод всех заявок
3.Поиск по номеру
4.Удаление заявки
С первыми 3 пунктами справился, а вот с удалением никак
Перерыл кучу форумов и книжек, но не могу понять как это осуществить
Заявки хранятся в текстовом файле base.txt
Снизу код программы

Код:
struct Node
{
    char point[20];    //- пункт назначения;
    int reis;        //- номер рейса;
    char name[12];    //- фамилия пассажира;
    char surname[12];    //- имя
    char patr[12];    //- отчество
    char date[100];  //- желаемая дата вылета;
    Node * next;    // указатель на структуру заявка.
};
 
void Menu();
Node *addNode(Node *first); // - добавление заявок в список;
Node *deleteNode(Node *first); // - удаление заявок по заданному номеру рейса
void outNode(Node *first); // - вывод всех заявок.
void outNodeNum(Node *first); // вывод одной заявки
 
int main()
{
    setlocale(LC_ALL, "Rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    Node *first = new Node;  
    Node *f1 = NULL;
    int k = 5;
    while (k != 6)
    {
        switch (k)
        {
        case 1: first = addNode(first); break;
        case 2: outNode(first); break;
        case 3: outNodeNum(first); break;
        case 4: first = deleteNode(first); break;
        case 5: Menu(); break;
        case 6: break;
        default: cout << "  ОШИБКА! Числа от 1 до 6.\n";
        }
        cout << "\nВведите нужный пункт: ";
        cin >> k;
    }
    getchar(); // пауза 
    return 0;
}
 
 
void Menu()
{
    system("cls");
    cout << "\n";
    cout << "1 - Добавить заявку\n";
    cout << "2 - Вывести все заявки\n";
    cout << "3 - Вывести заявку по номеру рейса и дате вылета\n";
    cout << "4 - Удалить заявку\n";
    cout << "5 - Очистить экран\n";
    cout << "6 - Выход\n";
}
 
 
 
 
// (1) Добавление заявки в базу
Node *addNode(Node *first)
{
    cout << "______________________________________________\n";
    Node *pv = new Node;
    cout << "Данные о заявке: \n";
    cout << "Введите номер рейса > ";
    cin >> pv->reis;
    cout << "Введите пункт назначения > ";
    cin >> pv->point;
    cout << "Введите имя пассажира > " ;
    cin >> pv->name;
    cout << "Введите фамилию пассажира > ";
    cin >> pv->surname;
    cout << "Введите отчество пассажира > ";
    cin >> pv->patr;
    cout << "Введите дату вылета > ";
    cin >> pv->date;
    cout << "\n";
    pv->next = NULL;
 
    { fstream out("base.txt", ios::out | ios::app);
    out <<  pv->reis << "\n";
    out <<  pv->point << "\n";
    out <<  pv->name << "\n";
    out <<  pv->surname << "\n";
    out <<  pv->patr << "\n";
    out <<  pv->date << "\n";
    out.close();
    }
 
 
 
 
    cout << "______________________________________________\n";
    if (first == NULL)
    {
        first = pv;
        return first;
    }
 
}
    
// (2) Открытие базы данных 
void outNode(Node *first)
 
{
    string path = "base.txt";
    ifstream fin;
    fin.open(path);
 
    if (!fin.is_open())
    {
 
        cout << "Ошибка открытия файла" << endl;
 
    }
    else
    {
        cout << "Файл открыт" << endl;
        string str;
        string str1;
        string str2;
        string str3;
        string str4;
        string str5;
        string str6;
        while (!fin.eof())
        {
            str = "";
            getline(fin, str);
            cout <<"Номер рейса: "<< str << endl;
            str1 = "";
            getline(fin, str1);
            cout << "Пункт назначения: " << str1 << endl;
            str2 = "";
            getline(fin, str2);
            cout << "Имя: " << str2 << endl;
            str3 = "";
            getline(fin, str3);
            cout << "Фамилия: " << str3 << endl;
            str4 = "";
            getline(fin, str4);
            cout << "Отчество: " << str4 << endl;
            str5 = "";
            getline(fin, str5);
            cout << "Дата вылета: " << str5 << endl;
            str6 = "";
            cout << "_________________________________" << endl;
            fin.ignore();
        }
        fin.close();
 
    }
}
 
// (3) Вывод завяки по номеру рейса
    void outNodeNum(Node *first)
 
    {
        struct work
        {
            string flightNumber;
            string destination;
            string surname;
            string name;
            string patronymic;
            string dateOfDeparture;
        };
        {
 
            ifstream fin("base2.txt");
            if (!fin.is_open())
            {
                cerr << "Error!" << endl;
                system("pause");
            }
 
            cout << "Введите номер рейса: ";
            string flightNumber;
            cin >> flightNumber;
            cout << "______________________________________________\n";
 
            work temp;
 
            while (true)
            {
                fin >> temp.flightNumber;
                if (fin.eof()) break;
                fin >> temp.destination;
                fin >> temp.surname;
                fin >> temp.name;
                fin >> temp.patronymic;
                fin >> temp.dateOfDeparture;
                if (temp.flightNumber == flightNumber) break;
            }
            if (!fin.eof())
            {
                cout << "Номер рейса: " << temp.flightNumber << endl;
                cout << "Пункт назначения: " << temp.destination << endl;
                cout << "Фамилия: " << temp.surname << endl;
                cout << "Имя: " << temp.name << endl;
                cout << "Отчество: " << temp.patronymic << endl;
                cout << "Дата вылета: " << temp.dateOfDeparture << endl;
            }
            else cout << "Заявка не найдена!" << endl;
 
            cout << endl;
            system("pause");
        }
    }
 
 //(4) Удаление завяки из базы 
    Node *deleteNode(Node *first)
Thereareloveyou вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт Большого текстового файла (14 млн. строк) с разбиением strannick Microsoft Office Excel 15 01.02.2014 12:55
удаление из текстового файла! andrewsereda Паскаль, Turbo Pascal, PascalABC.NET 9 12.11.2013 01:44
Чтение текстового файла в массив строк. Osceola Visual C++ 0 27.03.2012 20:05
Центрирование строк текстового файла Dimon128500 Паскаль, Turbo Pascal, PascalABC.NET 5 11.04.2010 06:11