Środowisko jakie używam to VisualStudio2017. Jak wiadomo jest ono strasznie rygorystyczne. Przeniosłem tam swój spory projekcik, działający bez zarzutu. Problematyczna jest taka oto pętla:
char wybor;
do
{
wybor = getch();
switch (wybor)
{
case '1': f1(); break;
case '2': f2(); break;
case ' ': break;
default: cout<<(char)7; break;
}
}
while (wybor != ' ');
Powinna działać bez zarzutu:
Po wciśnięciu znaku (użyciu _getch()) odpowiednia funkcja się wywołuje i kończy (wykonuje), a pętla zaczyna się od początku z tym, że tym razem _getch() wywołuje się sam (bez wciskania znaku), co powoduje defaultowy przypadek: dźwięk błędu.
Pętla wykonuje się jeszcze raz (tym razem poprawnie) i tak za każdym razem w każdym miejscu w kodzie, gdzie używam takiego układu. Wspomnę, że w poprzednim środkowisku (Dev - c++) nie było tego problemu z niemalże identycznym kodem (getch() zamienione tu na _getch() - wymaganie VS)
Proszę o pomoc / nakierowanie / sprostowanie mego myślenia. Pozdrawiam serdecznie