47xxxxxxxx Opublikowano 6 Lipca 2009 Udostępnij Opublikowano 6 Lipca 2009 Mam switcha: switch zmienna { case 666: printf("Costam zrób");break; default: printf("Nic nie rób");break; } Debuguje a tu: error: expected '(' before "zmienna" Daje ten głupi nawias, a tam inne błędy wyskakują.Jak to ominąć? Używam Code::Blocks. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 7 Lipca 2009 Filar Społeczności Udostępnij Opublikowano 7 Lipca 2009 Obejmij zmienna w nawiasy. Samo ( nie wystarczy. Zresztą polecam podstawy C++ opisującą struktury wyrażeń. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 Tak właśnie wychodzą śmieszne nawyki z GMa, składnia Delpiego wychodzi bokiem przy językach typu C. Nigdy, ale to przenigdy nie należy oszczędzać na nawiasach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Podam kod: switch (co_zrobic) { case "string jakis tam":cout << liczba+liczba2;break; case "string jakis tam":cout << liczba-liczba2;break; case "string jakis tam":cout << liczba*liczba2;break; case "string jakis tam":cout << liczba/liczba2;break; default:cout << "string jakis tam"; } ale wyskakuje błąd: error: switch quantity not an integer Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 7 Lipca 2009 Filar Społeczności Udostępnij Opublikowano 7 Lipca 2009 nie może być case "string jakiś tam". Z tego co wiem to musi być liczba. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 A jest jakiś switch lub coś podobnego tylko że na stringi?Czy można tylko zrobić na ifach?Można zrobić zmienne o wartości tekstowej i je tam wrzucić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 switch (co_zrobic) { case 1: "string jakis tam":cout << liczba+liczba2; break; case 2: "string jakis tam":cout << liczba-liczba2; break; case 3: "string jakis tam":cout << liczba*liczba2; break; case 4: "string jakis tam":cout << liczba/liczba2; break; default:cout << "string jakis tam"; } I czytelniej :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Egzekutor:Wyskakuje więcej błędów :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 No a takie pytanie: Zdefiniowałeś obiekt co_zrobic ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 W switchu nie możesz używać stringów, to nie GM. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 To nie jest obiekt, tylko zmienna string.Jakbym nie zdefiniował to by były przedtem błędy.Zdefiniowałem tak: char* co_zrobić; cin >> co_zrobić; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 char* to nie to samo co string. http://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4067 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 To pozbądź się stringów. int co_zrobic; switch (co_zrobic) { case 1: cout << " Jakis tam tekst " << liczba+liczba2; break; case 2: cout << " Jakis tam tekst " << liczba-liczba2; break; case 3: cout << "Jakis tam tekst " << liczba*liczba2; break; case 4: cout << " Jakis tam tekst "liczba/liczba2; break; default:cout << "Jakis tam tekst"; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 7 Lipca 2009 Filar Społeczności Udostępnij Opublikowano 7 Lipca 2009 Jesteś genialny, już dawno to powiedzieliśmy, ale mu chodzi o sposób, żeby działało jak switch, ale na stringach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Dobra, już dałem taki kod: #include <iostream> using namespace std; int main() { int liczba = 0; cout << "Podaj pierwszą liczbe"; cin >> liczba; cout << "Wybrałeś liczbe:"; cout << liczba; int liczba2 = 0; cout << "Podaj drugą liczbe"; cin >> liczba2; cout << "Wybrałeś liczbe:"; cout << liczba2; char* co_zrobic = ""; cout << "Co zrobić?Wybierz:#Dodaj#Odejmij#Pomnóż#Podziel"; cin >> co_zrobic; int zrobic; if (co_zrobic = "Dodaj") {zrobic = 1;} if (co_zrobic = "Odejmij") {zrobic = 2;} if (co_zrobic = "Pomnoz") {zrobic = 3;} if (co_zrobic = "Podziel") {zrobic = 4;} else {zrobic = 5;} switch (zrobic) { case 1:cout << liczba+liczba2;break; case 2:cout << liczba-liczba2;break; case 3:cout << liczba*liczba2;break; case 4:cout << liczba/liczba2;break; case 5:cout << "Wybierz:#Dodaj#Odejmij#Pomnóż#Podziel inaczej nic się nie stanie"; } return 0; } Tylko mam pytanko, jak robić enter w C++, bo daje "#" i nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 7 Lipca 2009 Administratorzy Udostępnij Opublikowano 7 Lipca 2009 \n ? albo w ASCII to jest 10, zatem cout << 10; zapewne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 std::endl Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Dobra /n działa.Tylko jest dziwny błąd kiedy pisze "Dodaj": Program received signal SIGSEGV, Segmentation fault. In std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char*) () () :boxed: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 cout << 10 to wyświetli 10 raczej. Bo operator << jest chyba przeciążony dla intów. Do tego jest \n i endl cout << "tralala \n"; albo cout << "tralala " << endl; chyba że nie używasz using namspece std wtedy musisz zrobić std::endl; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Boro Casso Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 Zawsze można używać stringów a przy zmiennej sterującej w switch zamienić ją na char. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Może pomożecie ?: Program received signal SIGSEGV, Segmentation fault. In std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char*) () () Zamiast rozmawiać o tych charach Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2009 Udostępnij Opublikowano 7 Lipca 2009 int zrobic; if (co_zrobic = "Dodaj") {zrobic = 1;} else if (co_zrobic = "Odejmij") {zrobic = 2;} else if (co_zrobic = "Pomnoz") {zrobic = 3;} else if (co_zrobic = "Podziel") {zrobic = 4;} else {zrobic = 5;} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 7 Lipca 2009 Filar Społeczności Udostępnij Opublikowano 7 Lipca 2009 #include <iostream> using namespace std; int main() { int liczba = 0; cout << "Podaj pierwszą liczbe"; cin >> liczba; cout << "Wybrałeś liczbe:"; cout << liczba; int liczba2 = 0; cout << "Podaj drugą liczbe"; cin >> liczba2; cout << "Wybrałeś liczbe:"; cout << liczba2; char* co_zrobic = ""; cout << "Co zrobić?Wybierz:#Dodaj#Odejmij#Pomnóż#Podziel"; cin >> co_zrobic; int zrobic; if (co_zrobic = "Dodaj") {zrobic = 1;} if (co_zrobic = "Odejmij") {zrobic = 2;} if (co_zrobic = "Pomnoz") {zrobic = 3;} if (co_zrobic = "Podziel") {zrobic = 4;} else {zrobic = 5;} switch (zrobic) { case 1:cout << liczba+liczba2;break; case 2:cout << liczba-liczba2;break; case 3:cout << liczba*liczba2;break; case 4:cout << liczba/liczba2;break; case 5:cout << "Wybierz:#Dodaj#Odejmij#Pomnóż#Podziel inaczej nic się nie stanie"; } return 0; } ja bym to zrobił inaczej: #include <iostream> using namespace std; int main() { int liczba = 0; cout << "Podaj pierwszą liczbe"; cin >> liczba; cout << "Wybrałeś liczbe:"; cout << liczba; int liczba2 = 0; cout << "Podaj drugą liczbe"; cin >> liczba2; cout << "Wybrałeś liczbe:"; cout << liczba2; int wybor; cout << "Co zrobic?\n1 - Dodaj\n2 - Odejmij\n3 - Pomnoz\n4 - Podziel\n"; cin >> wybor; switch (wybor) { case 1:cout << liczba+liczba2;break; case 2:cout << liczba-liczba2;break; case 3:cout << liczba*liczba2;break; case 4:cout << liczba/liczba2;break; default:cout << "Wybierz:#Dodaj#Odejmij#Pomnóż#Podziel inaczej nic się nie stanie"; } return 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 7 Lipca 2009 Autor Udostępnij Opublikowano 7 Lipca 2009 Dzięki, wszystko działa! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi