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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 20:26   #1
phantom4eg
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 39
Печаль C++ файл,строка,стек...

Очень нужна помощь
Уже пару дней бьюсь над одним моментом:
Сначала создаем файл, помещаем в него элементы с помощью стека, а потом мне нужно считать обратно из файла эти элементы, и вновь их сделать стеком!
С созданием разобрался,а как мне сделать так,чтоб при открытии элементы шли как стек???
В теории понимаю,на практике не получается..
в строке находятся только ЦИФРЫ!!

Как я понимаю здесь есть минимум 2 варианта:
1. Считать из файла строку,эту строку преобразовать в массив элементов,причем так, чтобы число отделенное пробелом от другого,являлось новым элементом массива
пример:
строка: 12 45 67
массив соответственно из 3х элементов
и уже потом весь массив преобразовывать в стек.

2. Напрямую из строки перевести в стек

Здесь вот ничего не понятно, что надо делать - ясно, как это делать - не понимаю!

Может мне сможет кто нибудь объяснить?

Вот код того,что смог сделать:
Код:
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
struct spisok
{
  int elem;
  spisok *next;
};
spisok *firstel,*Res;
int a,s,i;
void create();
void main()
{
create();
getch();
}

void create()
{
ofstream fin("c:/new.txt");
spisok *curel;
  int  el;
  firstel=new(spisok);
  cout<<"Vvedite elemnti (dla okonchania vvoda vvedite 0): ";
  cin>>el;

   firstel->next = NULL;
   curel = firstel;
      while  (el!=0)
  		{
    curel->next = new (spisok);
    curel = curel->next;
    curel->elem = el;
      fin<<el<<" ";
    cin>>el;
    	}
  curel->next = firstel->next;
}
phantom4eg вне форума Ответить с цитированием
Старый 22.03.2010, 20:50   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Попробуйте только исправте ошибки у нас разные среды разработки.
Код:
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;

struct spisok
{
  int elem;
  spisok *next;
};
spisok *firstel,*Res;
int a,s,i;
void create();
void main()
{
create();
getch();
}

void create()
{
	ifstream fin("C:\\new.txt");
spisok *curel;
  string el;
  firstel=new(spisok);

  firstel->next = NULL;
   curel = firstel;
   while  (!fin.eof())
  		{
    curel->next = new (spisok);
    curel = curel->next;
	curel->elem = atoi(el.c_str());
      fin>>el;
    cout<<el<<" ";
    	}
  curel->next = firstel->next;
}
Cpluser вне форума Ответить с цитированием
Старый 23.03.2010, 07:22   #3
phantom4eg
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 39
Радость

Огромное спасибо,все работает!!

Тему можно закрывать
phantom4eg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый файл и строка Siluet Помощь студентам 3 20.06.2009 11:02
стек в PM vladimir0108 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 08.01.2009 01:18
СТЕК KORT Фриланс 3 08.09.2008 23:38
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32
Стек Foky Паскаль, Turbo Pascal, PascalABC.NET 8 13.05.2008 18:39