@rustam6548

Почему в консоли отображаются неверные данные строки?

Проблема в этом куске кода:
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;
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы