Загрузка данных


#include <iostream>
#include <stack>
#include <fstream>

using namespace std;

int main()
{
    stack<int> st;
    int choice, value;

    do
    {
        cout << "\n===== МЕНЮ =====\n";
        cout << "1. Добавить элемент\n";
        cout << "2. Удалить элемент\n";
        cout << "3. Показать стек\n";
        cout << "4. Сохранить в файл\n";
        cout << "5. Прочитать из файла\n";
        cout << "6. Сумма элементов в файле\n";
        cout << "0. Выход\n";
        cout << "Ваш выбор: ";

        cin >> choice;

        switch(choice)
        {
            case 1:
            {
                cout << "Введите число: ";
                cin >> value;

                st.push(value);

                cout << "Элемент добавлен.\n";
                break;
            }

            case 2:
            {
                if(st.empty())
                {
                    cout << "Стек пуст.\n";
                }
                else
                {
                    cout << "Удален элемент: " << st.top() << endl;
                    st.pop();
                }

                break;
            }

            case 3:
            {
                if(st.empty())
                {
                    cout << "Стек пуст.\n";
                }
                else
                {
                    stack<int> temp = st;

                    cout << "Элементы стека:\n";

                    while(!temp.empty())
                    {
                        cout << temp.top() << endl;
                        temp.pop();
                    }
                }

                break;
            }

            case 4:
            {
                ofstream file("data.txt");

                if(!file)
                {
                    cout << "Ошибка открытия файла.\n";
                    break;
                }

                stack<int> temp = st;

                while(!temp.empty())
                {
                    file << temp.top() << endl;
                    temp.pop();
                }

                file.close();

                cout << "Данные сохранены в data.txt\n";
                break;
            }

            case 5:
            {
                ifstream file("data.txt");

                if(!file)
                {
                    cout << "Не удалось открыть файл.\n";
                    break;
                }

                int x;

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

                while(file >> x)
                {
                    cout << x << endl;
                }

                file.close();

                break;
            }

            case 6:
            {
                ifstream file("data.txt");

                if(!file)
                {
                    cout << "Не удалось открыть файл.\n";
                    break;
                }

                int x, sum = 0;

                while(file >> x)
                {
                    sum += x;
                }

                file.close();

                cout << "Сумма элементов = " << sum << endl;

                break;
            }

            case 0:
            {
                cout << "Программа завершена.\n";
                break;
            }

            default:
            {
                cout << "Неверный выбор.\n";
            }
        }

    } while(choice != 0);

    return 0;
}