Проблема в этом куске кода:
seq1 = stack1.getSeq();
puts(seq1);
sym = _getch();
seq1 - это строка типа char*, которая принимает значение строки объекта класса stack1.
Этот кусок кода нужен для заполнения строки, при этом она постоянно обновляется. Как только я её заполню, я запоминаю уже весь объект класса stack1 в переменной temp1:
temp1 = stack1;
Я восстанавливаю предыдущее состояние:
stack1 = temp1;
Потом уже начинаю опять набирать в строку символы. Но сначала пока не нажать любую клавишу, то отображается строка так, что она как будто и не менялась. В чём причина?
Полный код набора, запоминания:
case ENTER:
char sym;
switch (active_menu)
{
case 0:
system("cls");
SetConsoleCursorVisible(true, 100);
setXY(0, 12);
char* seq1;
while (true)
{
setXY(0, 12);
seq1 = stack1.getSeq();
puts(seq1);
sym = _getch();
if (sym == ESC)
{
system("cls");
break;
}
if (sym == BACKSPACE)
{
system("cls");
stack1.pop();
continue;
}
if (stack1.isFull())
{
system("cls");
continue;
}
stack1.add(sym);
system("cls");
}
system("cls");
SetConsoleCursorVisible(false, 100);
break;
case 4:
system("cls");
setXY(40, 12);
temp1 = stack1;
cout << "Точка восстановления стека 1 успешно создана";
sym = _getch();
system("cls");
while (sym != ESC)
{
setXY(40, 12);
cout << "Точка восстановления стека 1 успешно создана";
sym = _getch();
system("cls");
}
system("cls");
break;
case 6:
system("cls");
setXY(40, 12);
stack1 = temp1;
cout << "Стек 1 успешно восстановлен";
sym = _getch();
system("cls");
while (sym != ESC)
{
setXY(40, 12);
cout << "Стек 1 успешно восстановлен";
sym = _getch();
system("cls");
}
system("cls");
break;