Witam!
Piszę właśnie program zaliczeniowy, ale mniejsza o to.
W czym rzecz: chciałbym umożliwić wyjście z funkcji po naciśnięciu klawisza ESC.
Znalazłem takie coś: http://forum.programuj.com/viewtopic.php?p=6375&sid=2cd2e040fc0bfa1db04e000b0f60b504
Niestety w przypadku, gdy funkcja zawiera cin, to sprawa się nieco komplikuje.
Aby to jako tako działało, robię tak:
void switch_menu_7()
{
//sprzedaz detaliczna
char nazwa[51];
int ilosc;
int istnieje = -1;
int esc;
while(1)
{
cout << "Wprowadz nazwe towaru: ";
if ( !kbhit() )
{
esc = getch();
if (esc == 27) break;}
cin >> nazwa;
for (int i=0; i<licznik_towaru; i++)
{
if(strcmp(nazwa,magazyn.towar_magazyn[i].nazwa)==0)
{
istnieje = i;
break;
}//koniec if
}//koniec for
if (istnieje>=0)
{
magazyn.wypisz_towar(istnieje);
cout << "Ilosc towaru do sprzedazy: ";
cin >> ilosc;
magazyn.Sprzedaj_Det(nazwa, ilosc);
cout << "Sprzedano!\n";
sleep();
}
else cout << "Brak towaru\n";
}
sleep();
}
Problem: pierwsze litera nie jest brana do nazwa (cin >> nazwa), trzeba ją wstukać dwa razy.
Jak to można inaczej zrobić?