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

Динамический массив, запись и удаление - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить последний строковый символ '\n' http://www.cyberforum.ru/cpp-beginners/thread567623.html
Здравствуйте! Подскажите пожалуйста, можно ли удалить последний строковый символ '\n' ?? Добавлено через 28 минут Нашлось решение
C++ Обходы бинарного дерева написал программу которая проводит операции с бинарным деревом, создание и вывод получились хорошо а вот обходы и прочее выдают какую то системную ошибку помогите пожалуйста #include<iostream.h> #include<conio.h> #include<stdio.h> #include<fstream.h> #include<string.h> #include<iomanip.h> struct Node{ int d; //Äàííûå ýëåìåíòà http://www.cyberforum.ru/cpp-beginners/thread567601.html
C++ Как сделать, чтобы в char было hex число
ввод числа int s; cin >>s; char z=? как сделать чтобы в char z было hex число, то есть если s=15 z=0xF
Определить правильной ли последовательности расставлены круглые скобки в тексте C++
Здравствуйте! Моя задача звучит следующим образом: "Дан текстовый файл, содержащий программу на С++. Проверить эту программу на соответстие числа открывающихся и закрывающихся скобок с учетом последовательности. Каждый оператор занимает одну строку" Просто соответствие числа откр. и закр. скобок проверить легко, а вот с последовательностью окончательно запуталась (закомментированный фрагмент...
C++ Подскажите, как правильно написать http://www.cyberforum.ru/cpp-beginners/thread567561.html
Здравствуйте! Подскажите, пожалуйста, как написать такой код правильно: class Example { public: Example(int i); void fun(); }; Example::Example(int i)
C++ Уравнение прямой по двум точкам #include <iostream> using namespace std; void main() { setlocale (LC_ALL, "rus"); int x1, y1, x2, y2, x, y, line; cout << "Введите точки X1 Y1 и X2 Y2 : "; cin >> x1 >> y1 >> x2 >> y2; line = (y1 - y2) * x + (x2 - x1) * y + (x1 * y2 - x2 * y1); cout << line; подробнее

Показать сообщение отдельно
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
07.05.2012, 15:48     Динамический массив, запись и удаление
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
#include <iostream>
#include <windows.h>
#include <string.h>
using namespace std;
 
enum {SHOWALL=1, ADD, DEL, SEARCH, EXIT};
 
int menu()
{
    system("cls");
    cout << "[1] Показать\n";
    cout << "[2] Добавить\n";
    cout << "[3] Удалить\n";
    cout << "[4] Поиск\n";
    cout << "[5] Выход\n";
    cout << "Выбор: ";
    int key;
    bool flag = false;
    do
    {
        cin >> key;
        if(!cin.good())
        {
            cin.clear();
            cin.ignore(100,'\n');
        } else if(key>0 && key<6) flag = true;
 
    }while(!flag);
    cin.ignore(100,'\n');
    return key;
}
 
void Show(char **p, const int N)
{
    system("cls");
    for(int i=0; i<N; i++)
        cout << i+1 << ": " << p[i] << endl;
    system("pause");
}
 
char **Add(char **p, int &N)
{
    system("cls");
    N++;
    cout << "Добавление " << N << " записи: ";
    char **temp = new char *[N];
    if(p)
    {
        for(int i=0; i<N-1; i++) temp[i] = p[i];
        delete []p;
    }
    char str[100];
    cin.getline(str,100);
    temp[N-1] = new char [strlen(str)+1];
 
    strcpy(temp[N-1],str);
    cout << "\nДанные успешно добавлены!\n";
    system("pause");
    return temp;
}
 
char **Del(char **p, int &N)
{
    system("cls");
    int to_del;
 
    cout << "Номер удаляемого элемента: ";
    do
    {
        cin >> to_del;
    } while (to_del<0 || to_del>(N-1));
    delete p[to_del];
    char **temp = new char *[N-1];
    if(p)
    {
        for(int i=0, j=0; i<N; j++)
        {
            if(j!=to_del)
            {
                temp[i] = p[j];
                i++;
            }
        }
        delete []p;
    }
    N--;
    cout << "\nДанные успешно удалены!\n";
    system("pause");
    if(!N) return NULL;
    else return temp;
}
 
void Search(char **p, const int N)
{
    system("cls");
    cout << "Поиск работника/n";
    char *temp = new char [100];
    cout << "Введит слово для поиска: ";
    cin >> temp;
    for(int i=0; i<N; i++)
    {
        if(stricmp(p[i],temp) == 0)
        {
            cout << "Найден работник по совпадению " << temp << ": " << p[i] << endl;
            system("pause");
            break;
        }
        if(i==(N-1))
        {
            cout << "Поиск не дал результатов\n";
            system("pause");
        }
    }
}
 
int main()
{
    SetConsoleOutputCP(1251);
 
 
    char **empl = NULL;
    int cnt=0;
 
    int key;
    do
    {
        switch(key=menu())
        {
          case SHOWALL: if(empl) Show(empl, cnt);
          break;
          case ADD: empl = Add(empl, cnt);
          break;
          case DEL: if(empl) empl = Del(empl,cnt);
          break;
          case SEARCH: Search(empl, cnt);
          break;
          case EXIT: return 0;
        };
    }while(true);
 
}
 
Текущее время: 01:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru