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

Выделение динамической памяти C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Минимальная версия shell. fork-exec. freebsd http://www.cyberforum.ru/cpp-beginners/thread710416.html
Доброго времени суток! Написал прогу, минимальная версия шелла. После запуска принимает строку аргументов, а затем выполняет ее. После разбора аргументов строки выполняется связка fork-exec. Работает корректно, задание выполняет. Кроме единственного "но". Если запускать эту программу под убунтой, тест "ls ls" дает вывод "ls: невозможно получить доступ к ls: Нет такого файла или каталога",...
C++ Сортировка вектора, после добавление элементов Доброго. Есть класс массив. После каждого добавления элемента он должен сортировать элементы по возрастанию. Вот упрощенный пример: class IntArray { public: IntArray() {} IntArray(int size) { m_ints.resize(size); } void Add(int index, int element) http://www.cyberforum.ru/cpp-beginners/thread710411.html
C++ Одномерный массив: Вывести на экран номера всех элементов больше заданного числа
помогите пожалуйста разобраться с задачкой,знаю что примитивная и простая,но никак не могу сообразить как вывести номера элементов(( Вывести на экран номера всех элементов больше заданного числа
где можно скачать Билдер СИ++ 5.02? C++
дайте ссылку...сутки ищу...
C++ Подсчет количества слов http://www.cyberforum.ru/cpp-beginners/thread710383.html
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов, имеющих нечетную длину; вводит на экран частоту вхождения каждой буквы; удаляет текст, который размещен в круглых скобках.
C++ Вычислить номер элемента массива, ближайшего к средне арифметичного его значений В одномерном массиве, состоящем из N целых элементов, вычислить: • Номер элемента массива, ближайшего к средне арефметичного его значений; • Сумма элементов массива, расположенных между первым отрицательным и вторым положительным элементами. Превратить массив таким образом, чтобы в его первой половине располагались элементы, стоящие в четных позициях, а во второй половине - элементы, стоящие... подробнее

Показать сообщение отдельно
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
27.11.2012, 02:43  [ТС]     Выделение динамической памяти C++
Vourhey, помоги плз, а то в такое время уже мозг off. Вот код, 3 пункт меню не работает, я что-то не так делаю, там должна быть строка, которую я ввожу:

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
/*Разработать класс String, который в дальнейшем будет использоваться для работы со строками.
Класс должен содержать: 
* конструктор по умолчанию, позволяющий создать строку длиной 80 символов; 
* конструктор, позволяющий создавать строку произвольного размера; 
* конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя. 
класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.*/
 
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
 
HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
 
class String
{
private:
    char * string;
public:
    String() // По умолчанию.
    {
        string = new char [81]; 
    }
    String(int i) // Позволяет создавать строку произвольного размера.
    {
        string = new char[i + 1];
    }
    String(char * s) // Создание строки и инициализация.
    {
        s = new char[];
        strcpy(string, s);
    }
    ~String()
    {
        delete [] string;
    }
    void Initialization()
    {
        cout<<"Введите строку: ";
        gets(string);
        char * buffer;
        buffer = gets(string);
        cout<<endl;
 
        ChoiseShowString();
    }
    void ChoiseShowString()
    {
        int choiseshowstring;
        cout<<"Показать строку?\n\n"
            <<"1 - Да. \n"
            <<"0 - Выйти.\n\n";
        cout<<"Введите ваш выбор: ";
        cin>>choiseshowstring;
        cout<<endl;
        if(choiseshowstring == 0) exit(0);
        if(choiseshowstring == 1) ShowString();
        else
        {
            system("cls");
            cout<<"Не верный ввод, повторите выбор!\n\n";
            ChoiseShowString();
        }
    }
    void ShowString()
    {
        OemToAnsi(string,string);
        cout<<"Строка: "<<string<<endl<<endl;
    }
};
 
void Stand(int x, int y, int key, char*str)
{
    CONSOLE_CURSOR_INFO ci; ci.bVisible=0; ci.dwSize=100; SetConsoleCursorInfo(H,&ci);
    COORD c;
    c.X = x; c.Y = y;
    SetConsoleCursorPosition(H,c);
    SetConsoleTextAttribute(H,key);
    cout<<str<<"\n";
}
 
void main()
{
    system("mode con cols=30 lines=10");
    system("title String");
    setlocale(LC_ALL,"RUS");
 
    String s;
 
    Stand(5,1,10,"FAQ о задании \"String\"");
    Stand(5,3,2,"Произвольная строка");
    Stand(5,5,2,"Создать строку");
    Stand(5,7,2,"Выход");
 
    int key; 
    int punkt = 1;
 
    while(1)
    {
        key = getch();
        if(key == 80)
        {
            if(punkt < 4)
            {
                punkt++;
                if(punkt == 2)
                {
                    Stand(5,1,2,"FAQ о задании \"String\"");
                    Stand(5,3,10,"Произвольная строка");
                }
                else if(punkt == 3)
                {
                    Stand(5,3,2,"Произвольная строка");
                    Stand(5,5,10,"Создать строку");
                }
                else if(punkt == 4)
                {
                    Stand(5,5,2,"Создать строку");
                    Stand(5,7,10,"Выход");
                }
            }
        }
        else if(key == 72)
        {
            if(punkt > 1)
            {
                punkt--;
                if(punkt == 3)
                {
                    Stand(5,5,10,"Создать строку");
                    Stand(5,7,2,"Выход");
                }
                else if(punkt == 2)
                {
                    Stand(5,3,10,"Произвольная строка");
                    Stand(5,5,2,"Создать строку");
                }
                else if(punkt == 1)
                {
                    Stand(5,1,10,"FAQ о задании \"String\"");
                    Stand(5,3,2,"Произвольная строка");
                }
            }
        }
        else if(key == 13)
        {
            system("cls");
            SetConsoleTextAttribute(H,15);
            if(punkt == 1)
            {
                system("title FAQ о задании \"String\"");
                system("mode con cols=43 lines=23");
                SetConsoleTextAttribute(H,10);
                cout<<"\n  Разработать класс String, который в \n  дальнейшем будет использоваться для \n\t работы со строками.\n\n";
                SetConsoleTextAttribute(H,14);
                cout<<"\tКласс должен содержать:\n\n";
                SetConsoleTextAttribute(H,15);
                cout<<" - конструктор по умолчанию, позволяющий \n   создать строку длиной 80 символов.\n\n"
                    <<"      - конструктор, позволяющий \n  создавать строку произвольного размера.\n\n"
                    <<"  - конструктор, который создаёт строку и \n  инициализирует её строкой, полученной от \t\tпользователя.\n\n"
                    <<"   - методы для ввода строк с клавиатуры \n        и вывода строк на экран.\n\n";
                SetConsoleTextAttribute(H,11);
            }
            else if(punkt == 2) 
            {
                system("title String произв. размера");
                system("mode con cols=43 lines=30");
                int c;
                cout<<"Введите размер символьного массива: ";
                cin>>c;
                cout<<endl;
                String b(c);
                b.Initialization();
            }
            else if(punkt == 3) 
            {
                system("title Создание и инициализация строки");
                system("mode con cols=43 lines=30");
                String str(s);
                str.Initialization();
                getch();
            }
            else if(punkt == 4)
            {
                DWORD size=1024;
                char buf[1024];
                GetUserNameA(buf, &size); 
                SetConsoleTextAttribute(H,11);
                system("mode con cols=30 lines=6");
                SetConsoleTextAttribute(H,14);
                system("title До свидания!");
                cout<<"   До свидания ув. "<<buf<<endl<<endl<<"   ";
                SetConsoleTextAttribute(H,11);
            }
            else 
            {
                cout<<"До свидания!\n\n";
                getch();
            }
            exit(0);
        }
    }
 
}
 
Текущее время: 22:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru