После захода в один из пунктов меню и выхода из него пропадают пункты. C++
using namespace std;
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string.h>
#define KEY_ARROW_DOWN 80
#define KEY_ARROW_UP 72
#define KEY_ARROW_RIGHT 77
#define KEY_ARROW_LEFT 75
#define KEY_ENTER 13
#define KEY_ESC 27
#define ATTR1 037
#define ATTR2 036
const char* m[3]={"first\nsecond\nexit"};
void draw(HANDLE, COORD, int, int, int);
void first(){
system("cls"); cout<<"first"; system("pause");};
void second(){
system("cls"); cout<<"second"; system("pause");};
int main(int argc, char* argv[]) {
COORD source={2,2}, current=source;
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(h, ATTR1);
int fl=1, k=2, n=3, len=1;
system("cls");
while (fl){
if(_kbhit()){
char ch=_getch();
switch(ch){
case 27: fl=0; break;
case 13:{
switch(k){
case 0:first(); break;
case 1:second(); break;
case 2:fl=0;};
system("cls"); draw(h, current, k, n, len); break;
};
case 80:
if(k==n-1)k=0; else k++; draw(h, current, k, n, len);break;
case 72:
if(k==0)k=n-1; else k--; draw(h, current, k, n, len);break;
}
}
}
return 0;
}
void draw(HANDLE h, COORD c, int k, int n, int len){
SetConsoleTextAttribute(h, ATTR1); COORD cc=c;
for(int i=0; i<n; i++){
cc.X=i;
cc.Y=cc.X;
SetConsoleCursorPosition(h, cc); cout<<m[i];
};
cc.X=6;
cc.Y=k*len;
SetConsoleTextAttribute(h, ATTR2);
SetConsoleCursorPosition(h, cc); cout<<m[k];
};
Создаю меню из трёх пунктов с помощью windows.h, могу передвигаться между пунктами с помощью стрелок на клавиатуре: "Вверх" и "Вниз", захожу в пункты с помощью кнопки "Enter", попадаю в первый, либо второй пункты, а после выхода обратно пропадает меню, как это исправить?