Qba474 Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 Witam, niedawno rozpocząłem naukę w C++ i jeszcze niewiele o nim wiem, napisałem już kilka prostych programów i teraz od 4 dni usiłuję napisać jakieś menu tekstowe do swojego programu, ale niestety nie wychodzi mi to. ;/ Korzystałem już z wszelakich poradników w Internecie i innych rzeczy, ale za każdym razem, nawet gdy po prostu skopiuję kod wyskakuje mi jakiś błąd Przeważnie przy funkcji "case". Możecie mi jakoś poradzić jak napisać takie menu? Albo napisać gotowy kod? Z góry dzięki za pomoc Link do komentarza Udostępnij na innych stronach More sharing options...
[Ekspert] Hakken Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 Wstaw swoj projekt menu, to ci powiem(y) co nie działa. Link do komentarza Udostępnij na innych stronach More sharing options...
yojc Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 Można to zrobić np. tak:char komenda; while (1) { printf("\nCo chcesz zrobic? "); scanf("%s",komenda); switch(*komenda) { case 'a': // to sie wykona gdy uzytkownik wprowadzi znak a break; case 'b': // to sie wykona gdy uzytkownik wprowadzi znak b break; //i tak dalej... default: // to sie wykona gdy wprowadzony znak nie ma przypisanej komendy break; } } Link do komentarza Udostępnij na innych stronach More sharing options...
Qba474 Napisano Luty 5, 2011 Autor Zgłoś Share Napisano Luty 5, 2011 Można to zrobić np. tak:char komenda; while (1) { printf("\nCo chcesz zrobic? "); scanf("%s",komenda); switch(*komenda) { case 'a': // to sie wykona gdy uzytkownik wprowadzi znak a break; case 'b': // to sie wykona gdy uzytkownik wprowadzi znak b break; //i tak dalej... default: // to sie wykona gdy wprowadzony znak nie ma przypisanej komendy break; } } A jak mam to wstawić? Tzn. gdzie? Bo próbuję skompilować i też błąd mam jakiś ;/ Mój kod, wzięty z poradnika na YT. #include <iostream> #include <string> using namespace std; int main() { int loop=1; int choice; string getinput; while(loop==1) { system("CLS"); cout << "::Menu::\n\n" << "1. Question\n" << "2. Exit\n\n"; cin >> choice; switch(choice) { case 1; system("CLS"); cout << "::Question::\n\n" << "are you a programmer ?\n\n" cin >> getinput; if(getinput=="yes") system("CLS") cout << "You are a great person"; system("PAUSE"); } else { system("CLS"); cout << "You are not a great person"; system("PAUSE"); } case 2; if(choice==2) { exit(0); } } Link do komentarza Udostępnij na innych stronach More sharing options...
[Ekspert] Hakken Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 po pierwsze: po case [wartosc] nie wystepuje srednik, tylko dwukropek; po drugie: switch(choice) { /* */ case 2: if (choice==2) } powtarzasz sie. Nie powtarzaj sie. po trzecie: if(getinput=="yes") system("CLS") cout << "You are a great person"; system("PAUSE"); wrzuc instrukcje po "if-ie" w klamry Link do komentarza Udostępnij na innych stronach More sharing options...
politan Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 Ja bym to zrobił na twoim miejscu tak: #include <iostream> #include <stdlib.h> #include <string> using namespace std; int main() { int i = 0; int choice; string answer; do{ cout << "::MENU::" << endl; cout << "1.Question\n2.Exit\n"; cin >> choice; switch(choice) { case 1: system("cls"); cout << "Are U a programmer ?" << endl; cout << "Answer: "; cin >> answer; if(answer == "yes" || answer == "YES") { cout << "You are a great person !"; }else{ cout << "You are not a great person."; } system("cls"); break; case 2: i = 1; system("cls"); break; default: system("cls"); break; } }while(i == 0); system("PAUSE"); } Pisane na szybko ale powinno działać. Uwzględniłem to, że chcesz czyścić konsolę po każdym zapytaniu tak, jak w powyższym kodzie. Mistrzem programowania nie jestem ale działa . Link do komentarza Udostępnij na innych stronach More sharing options...
[Ekspert] Hakken Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 to jak już wrzycamy kody to jeszcze raki dodam, poprawiony kod Qba474 #include <iostream> #include <string> using namespace std; int main() { int loop=1; int choice; string getinput; while(loop==1) { system("CLS"); cout << "::Menu::\n\n" << "1. Question\n" << "2. Exit\n\n"; cin >> choice; switch(choice) { case 1: system("CLS"); cout << "::Question::\n\n" << "are you a programmer ?\n\n"; cin >> getinput; if(getinput=="yes") { system("CLS"); cout << "You are a great person\n"; system("PAUSE"); } else { system("CLS"); cout << "You are not a great person\n"; system("PAUSE"); } break; case 2: return 0; break; } } return 0; } Link do komentarza Udostępnij na innych stronach More sharing options...
Qba474 Napisano Luty 5, 2011 Autor Zgłoś Share Napisano Luty 5, 2011 Dzięki wszystkim! Działa Link do komentarza Udostępnij na innych stronach More sharing options...
Sevard Napisano Luty 5, 2011 Zgłoś Share Napisano Luty 5, 2011 Problem rozwiązany, więc temat zamykam.W razie potrzeby otwarcia tematu, proszę o kontakt przez PW. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.