ďťż

Ładny brzuch

nie mam pojęcia dlaczego to nie działa jak w opisie tzn po pierwszym wykonaniu switcha pętla wykonuje się jeszcze raz i zwraca wynik z "default" a dopiero po następnym przejściu znowu pyta o liczbę do wpisania

//Napisać program wyświetlający i obsługujący menu: //1 - Opcja pierwsza //2 - Opcja druga //3 - Opcja trzecia //0 - Wyjście z programu //Po wybraniu odpowiedniej opcji wyświetlenie komunikatu "Wybrałeś opcję nr X" //lub "Nieobsługiwana opcja" lub komunikat "Koniec programu". //Program ma działać w pętli aż do naciśnięcia 0. #include <stdio.h> int main() { char c='1'; while (c != '0') { printf("1 - Opcja piewsza\n"); printf("2 - Opcja druga\n"); printf("3 - Opcja trzecia\n"); printf("0 - Wyjście z programu\n"); printf("Wybierz opcję: "); scanf("%c",&c); switch © { case '1': printf("Wybrałeś opcję pierwszą\n"); break; case '2': printf("Wybrałeś opcję drugą\n"); break; case '3': printf("Wybrałeś opcję trzecią\n"); break; case '0': printf("Koniec programu\n"); break; default : printf("Nie ma takiej opcji\n"); break; } } system("PAUSE"); return 0; }
Użytkownik thane_87 edytował ten post 10 marzec 2007, 21:04


dziwne, ja kompiluje w BCB 6 i działa,

ja kompiluje w Dev-C++ ale nie ma żadnych błędów warningów ani nic z tych rzeczy, podejrzewam że to ma związek z charem ale pewny jestem...

Enter wysyła jeszcze znak powrotu do początku linii. Przerobiłem ten kod (zerknij na case 10) i działa jak trzeba. Zakomentowany kawałek kodu rozwiązuje problem.

#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { char c='1'; while (c != '0') { printf("------------\n") ; printf("1 - Opcja piewsza\n"); printf("2 - Opcja druga\n"); printf("3 - Opcja trzecia\n"); printf("0 - Wyjście z programu\n"); printf("Wybierz opcję: "); // c=getch(); // printf("\n"); scanf("%c",&c); switch © { case '1': printf("Wybrałeś opcję pierwszą\n"); break; case '2': printf("Wybrałeś opcję drugą\n"); break; case '3': printf("Wybrałeś opcję trzecią\n"); break; case '0': printf("Koniec programu\n"); break; case 10: printf("\\r\n");break; default : printf("Nie ma takiej opcji\n"); break; } } system("PAUSE"); return 0; }



dzięki wielkie, o to mi chodziło :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •