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

Динамические структуры. Стек (помогите найти ошибку) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двоичный (бинарный) поиск http://www.cyberforum.ru/cpp-beginners/thread813290.html
Вот такой вот вопрос: Есть например такой линейный массив 1 1 1 1 2 3 4 5 6 Вводят какое-то число и нужно проверить сколько выступлений этого числа есть в массиве. Я просто нахожу какое-то выступление числа и иду вправо и влево пока есть это число. Но при очень больших массивах это заменяет очень много времени. Как бинарным поиском находить первое выступление этого числа и последнее? ...
C++ Считывание бмп файла хочу считать бмп файл размер 225x225 в массив чисел , изображение черно белое и когда делаю вывод массива на экран вылазиют слишком большие числа например (345973632) это одно из чисел вот код #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) http://www.cyberforum.ru/cpp-beginners/thread813289.html
написать программу, которая вводит число из 4 цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга. например если введенное ч C++
написать программу, которая вводит число из 4 цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга. например если введенное число 4239, то должно быть напечатано 4 2 3 9
C++ Структуры, копирование файла
Подскажите, как написать программку с меню с пунктами: – посимвольное копирование файла; – построчное копирование файла; – поблочное копирование файла. + Для задания имен файлов использовать аргументы командной строки.
C++ Хранение прототипов методов класса и их непосредственной реализации в различных файлах http://www.cyberforum.ru/cpp-beginners/thread813281.html
вот собственно решил перейти на тот этап, когда прототипы в *.h а определения в *.cpp но почти сразу столкнулся со странной ошибкой в элементарном примере: //point.hpp class Point{ private: int x; int y; public: Point(); Point(int a, int b);
C++ Дружественные функции С дружественными классами разобрался, спасибо. А теперь ф-ции. Киньте пожалуста простой пример: класс(несколько полей), обьект описаный в мейне, и функция, которая использует некое поле созданого обьекта. подробнее

Показать сообщение отдельно
anmartex
...
1701 / 1194 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
20.03.2013, 09:19     Динамические структуры. Стек (помогите найти ошибку)
Демку сделал без менюшки. Я думаю, что если понадобиться, то вы и сами сделаете:
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
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
#include <cstdlib>
 
using namespace std;
 
struct TNode
{
   string value;
   TNode* next;
};
 
//----------------------------------------------//
TNode* Push(TNode*& stack, const string& value)
{
   TNode* node = new TNode;
   node->value = value;
   node->next = stack;
 
   stack = node;
 
   return stack;
}
//----------------------------------------------//
string Pop(TNode*& stack)
{
   string value;
 
   if (stack == NULL)
   {
      return value;
   }
   value = stack->value;
 
   TNode* node = stack;
   stack = stack->next;
   delete node;
 
   return value;
}
//----------------------------------------------//
ostream& operator << (ostream& os, const TNode* stack)
{
   for (; stack; stack = stack->next)
   {
      os << stack->value << " ";
   }
 
   return os;
}
//----------------------------------------------//
bool GetWord(const char* text, const char*& begin, const char*& end)
{
   for (; *text && !isalpha(*text); ++text) { ; }
 
   begin = text;
 
   for (; *text && isalpha(*text); ++text) { ; }
 
   end = text;
 
   return (begin != end);
}
//----------------------------------------------//
bool LoadWords(const string& fname, TNode*& stack)
{
   ifstream f(fname.c_str());
 
   if (f.is_open() == false)
   {
      return false;
   }
 
   f.seekg(0, f.end);
   int length = f.tellg();
   f.seekg (0, f.beg);
 
   char* buff = new char [length+1];
   f.read(buff, length);
   buff[length] = 0;
 
   const char* text = buff;
   const char* begin, * end;
 
   for (; GetWord(text, begin, end); text = end+1)
   {
      Push(stack, string(begin, end-begin));
   }
 
   delete[] buff;
 
   return true;
}
//----------------------------------------------//
void CopyWordWithLength(const TNode* source, TNode*& target, size_t length)
{
   for (; source; source = source->next)
   {
      if (source->value.size() == length)
      {
         Push(target, source->value);
      }
   }
}
//----------------------------------------------//
 
int main()
{
   TNode* stack = NULL;
 
   if (LoadWords("program.cpp", stack) == false)
   {
      cerr << "file not open" << endl;
      system("pause");
      return 1;
   }
 
   cout << stack << endl;
 
   TNode* target = NULL;
 
   CopyWordWithLength(stack, target, 4);
 
   cout << endl << target << endl;
 
   system("pause");
 
   return 0;
}
Динамические структуры. Стек (помогите найти ошибку)

Бинарник + исходник: program.7z
 
Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru