Skocz do zawartości

Zablokowane nawias przed switch? O.O


47xxxxxxxx

Rekomendowane odpowiedzi

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

  • Filar Społeczności

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

   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

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

  • Filar Społeczności

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

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

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

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

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

  • Filar Społeczności

#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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...