Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2018, 09:18   #1
DellXT
Пользователь
 
Регистрация: 17.04.2018
Сообщений: 28
По умолчанию Стек, чтение и сохранение в файл

Есть у меня такой код реализации стека. Нужны еще две операции - читания из файла и сохранения в файл. Читал про ifstream и ofstream только не понятно как это применить в общем коде.
Вожможно кто поможет хотя бы с ifstream?


Код:
#include <iostream>
using namespace std;
const int size=8;
class stack
{
    int top, s[size];
public:
    stack()
    {
        top=-1;
    }
    void push(int);
    int pop();
    bool isempty();
    bool isfull();
    int peep(int);
    void display();
};
void stack :: push(int value)
{
    if(!isfull())
    {
        top++;
        s[top]=value;
    }
}
bool stack :: isempty()
{
    if(top==-1)
    {
        cout<<"Underflow";
        return true;
    }
    else
        cout<<"Not underflow";
        return false;
}
bool stack :: isfull()
{
    if(top>size)
    {
        cout<<"Overflow";
        return true;
    }
    else
        cout<<"Not overflow";
        return false;
}
void stack :: display()
{
    int i;
    cout<<"stack value is:"<<endl;
    for(i=top;i>=0;i--)
    {
        cout<<"|"<<s[i]<<"|"<<endl;
    }
}
int stack :: pop()
{
    if(!isempty())
    {
        int temp=s[top];
        top--;
        return temp;
    }
}
int main()
{
    int ch, value, i, pos;
    stack s1;
    do
    {
        cout<<"\n1.Push\n";
        cout<<"2.Pop\n";
        cout<<"3.Is empty\n";
        cout<<"4.Is Full\n";
        cout<<"5.Display\n";
        cout<<"6.Exit\n";
        cout<<"Enter your choice"<<" ";
        cin>>ch;
        switch(ch)
        {
        case 1:
            cout<<"Enter a Value"<<" ";
            cin>>value;
            s1.push(value);
            s1.display();
            break;
        case 2:
            cout<<"Popped value is:"<<s1.pop()<<endl;
            s1.display();
            break;
        case 3:
            s1.isempty();
            break;
        case 4:
            s1.isfull();
            break;
        case 5:
            s1.display();
            break;
        }
        }while(ch!=6);

    }
DellXT вне форума Ответить с цитированием
Старый 17.04.2018, 10:11   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Обычно это не делают внутри класса стека.
Посмотрите на любой стандартный контейнер (std::vector, std::stack, ...).

Просто снаружи вызывать push или pop.

Как и весь другой вывод, например isempty лучше просто возвращать true/false, а выводить что надо снаружи.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение и чтение объектов класса в/из Xml файл _taz_ C# (си шарп) 6 08.01.2015 15:01
Сохранение/чтение в нетипизированный файл массива используя потоки sanji2010 Общие вопросы Delphi 5 12.11.2014 21:14
Чтение из файла,перевод из доп кода в прямой из него в десятичный и дальнейшее сохранение в файл С# DimaLord Помощь студентам 2 21.01.2014 00:39
Вопрос Сохранение массива в файл и чтение массива из файла vvzvlad Помощь студентам 2 05.11.2013 23:27
TEdit сохранение в файл и чтение при загрузке Casper-SC Помощь студентам 7 05.07.2007 03:16