Форум программистов, компьютерный форум CyberForum.ru

Запись стека в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка массива структур http://www.cyberforum.ru/cpp-beginners/thread813353.html
Дана структура WORKER и массив из 10 стркутур. Нужно 1)сортировать список 2) вывести на экран рабочих чей стаж больше числа введённого с клавы. 2-ое сделал, не получается отсортировать. Пробовал с помощью qsort выдаёт ошибку. Структура считывается с файла. Функция сортировки выделена красным. #include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; const int n=10;...
C++ игра "жизнь." Здравствуйте, форумчане, я новенький по этому возможно буду ошибаться и говорить глупости. Но надеюсь вы таки мне поможете в понимании моментов в которых возникают сложности. В книге "Этюды для программистов" Ч.Уэзерелла, первым заданием является задача которая звучит так :(привожу в вложении так как условия только в формате изображений) Всего чего мне удалось добиться, так это вывода... http://www.cyberforum.ru/cpp-beginners/thread813349.html
C++ как переделать массив что бы не было его остановки и как добавить индекс
Такая вот задача найти индекс максимального элемента массива , вот мой код что тут не так и что следует добавить ? и почему у меня индекс вообще н правильно считает ? #include<iostream> #include<locale> using std::cout; using std::cin; using std::swap; using std::endl; #include<iomanip> using std::setw;
C++ Как подключить openGL к своей программе?
везде написано, что она входит в состав windows. Пишу код в microsoft visual C++ 2010 express. Как мне туда подключить openGL ? Пишу openGL-овский код: glClearColor(1.0, 1.0, 1.0, 1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); glutDispayFunc(display); и мне IDE все это подчеркивает и говорит, что не знает, что это такое :(
C++ Ошибка в функции, связанная с использованием памяти http://www.cyberforum.ru/cpp-beginners/thread813342.html
Все доброго времени суток. Помогите, пожалуйста, найти ошибку в моей функции: #include <wchar.h> #include "functions.h" // файл с прототипами функций wchar_t* cleanwchar_t out, const wchar_t in) { int n = wcslen(in);
C++ Составить Задачю по теме: Обработка символьной и строковой информации Результаты вступительных экзаменов в вуз предоставлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и оценки по каждому из M экзаменов. Фамилия и оценки разделены пробелами. Например: Иванов 4 5 Соколова 3 5 Сидоров 2 5 Петров 5 5 Дроздова 4 2 Определить количество абитуриентов, сдавших хотя бы один экзамен на "двойку". Вывести фамилии таких учеников.... подробнее

Показать сообщение отдельно
Wydges
Сообщений: n/a
20.03.2013, 03:21     Запись стека в файл
Вот собственно код, помогаю другу с лабой, есть структура STACK, которая является одним элементом стека, при добавлении в стек элементов из файла проблем нету, с помощью cout проверил все, когда же пытаюсь реализовать удаление из стека и передачу из стека в файл данных выводится непонятно что

и еще, когда входящий поток записываю в стринговый массив, первый элемент файла не записывается

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
 
struct STACK {
 
     char info;
     STACK *next;
 
 };
 
// Проверка на пустоту
 int Empty(STACK *pstack)
 {
 
     if (pstack==NULL)
     return 0;
     else
     return 1;
 
 }
 
//Добавление эл-та
 void Add(STACK **pstack, char c)
 {
     cout<<c<<endl;
     STACK *tmp=new STACK;
     (*tmp).info=c;
     cout<<(*tmp).info<<endl;
     tmp->next=*pstack;
     *pstack=tmp;
     cout<<(**pstack).info<<endl;
     delete tmp;
 }
 
//Удаление элемента из стека и вываод в масив
 void Pop(STACK **pstack, ofstream& to)
 {         
     STACK *tmp=*pstack;
     
     cout<<(**pstack).info<<endl;
     to<<(**pstack).info;
     *pstack=(*pstack)->next;
     delete tmp;
 
 }
 
 
 int main()
 {
     // Создадим потоки ввода и вывода из файла и в файл
    string iname,oname;
    cout<<"Type a name of an input file"<<endl;
    cin>>iname;
    ifstream from(iname.c_str()); 
    if (!from) 
    {
       cerr<<"Can't open input file"<<iname<<endl;
       system("pause");
       return 0;
    }
    cout<<"Type a name of an output file"<<endl;
    cin>>oname;
    ofstream to(oname.c_str());
    if (!to) 
    {
       cerr<<"Can't open output file"<<oname<<endl;
       system("pause");
       return 0;
    }
    
     char c;
     string str;
     while(from.get(c))
     from>>str;
     cout<<str<<endl;
    
     setlocale(LC_ALL,"Russian");
     STACK *stack=NULL;
     int num;
     char otv;
     do
     {
 
         cout << "1. Добавление элементов в вершину стека" << endl
         << "2. Удаление элемента с вершины стека" << endl
         << "0. Выход" << endl;
         cout << " = ";
         cin >> otv;
         switch(otv)
         {
 
         case '1':
 
                 cout << endl << "Сколько элементов нужно добавить = " << endl;
                 cin >> num;
                 for (int i=0;i<num;i++)
                 {
                     Add(&stack, str[0]);
                     str.erase(0,1);                
                 }
                 cout << endl << "Элементы добавлены" << endl;
                 cout<<str<<endl;
                 break;
 
             
 
         case '2':
 
          
          /*STACK *tmp=stack;
          cout<<stack.info<<endl;
          *stack=(*stack)->next;
          delete tmp;*/
          if (Empty(stack)==0)
          cout << endl << "Стек пуст" << endl;
          else
                 {
               
                 Pop(&stack, to);
                 cout << endl << "Элемент переведен в файл" << endl;
                 }
          break;
 
         case '0':
             break;
 
         default:
 
             cout << endl << "Ошибка" << endl;
             break;
 
         }
 
     }while(otv!='0');
     cin.get();
 
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru