Problem jest następujący , po wybraniu odpowiedniej opcji i kliknięciu enter ekran nie zostaje oczyszczony . Funkcja system("cls") nie działa .
#include <iostream>
#include "menu.h"
int main()
{
Menu m1;
m1.menu();
return 0;
}
#ifndef menu_h
#define menu_h
#include "linia.h"
class Menu:public Linia
{
public:
Menu();
void menu();
void ustaw(int x , int y);
private:
char znak;
};
#endif // menu_h
#include "menu.h"
#include <iostream>
#include <conio.h>
#include "windows.h"
using namespace std;
Menu::Menu()
{
}
void Menu::menu()
{
while(nr_linii != 5)
{
ustaw(0 , 0);
if(nr_linii == 0)
cout << "-->Linia 10\n";
else cout << "Linia 10 \t";
ustaw(0 , 1);
if(nr_linii == 1)
cout << "-->Linia 16\n";
else cout << "Linia 16 \t";
ustaw(0 , 2);
if(nr_linii == 2)
cout << "-->Linia 18\n";
else cout << "Linia 18 \t";
ustaw(0 , 3);
if(nr_linii == 3)
cout << "-->Kontakt z MZK\n";
else cout << "Kontakt z MZK \t";
ustaw(0 , 4);
if(nr_linii == 4)
cout << "-->Wyjscie\n";
else cout << "Wyjscie \t";
znak = getch();
switch(znak)
{
case 72: //strzałka w górę
nr_linii--;
break;
case 80: //strzałka w dół
nr_linii++;
break;
}
if(nr_linii > 4)
nr_linii--;
if(nr_linii < 0)
nr_linii++;
if(nr_linii == 0 && znak == 13)
{
system("cls"); // ta linijka
}
if(nr_linii == 4 && znak == 13)
{
exit(0);
}
}
}
void Menu::ustaw(int x , int y)
{
COORD cord; // ustawia kursor myszy na początek konsoli
cord.X = x;
cord.Y = y;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), cord );
}
#ifndef linia_h
#define linia_h
#include "ulica.h"
class Linia:public Ulica
{
public:
Linia();
int nr_linii;
};
#endif // linia_h
// linia.cpp
#include "linia.h"
Linia::Linia()
{
nr_linii = 0;
}
#ifndef ulica_h
#define ulica_h
class Ulica
{
public:
Ulica();
char nazwa_ulicy;
};
#endif // linia_h
// ulica.cpp
#include "ulica.h"
Ulica::Ulica()
{
nazwa_ulicy = ' ';
}
Jest jakieś wyjście z sytuacji , czy pozostaje mi zrobić menu za pomocą instrukcji case ?