• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

error: case label ''3'' not within a switch statement

Object Storage Arubacloud
0 głosów
4,008 wizyt
pytanie zadane 31 stycznia 2016 w C i C++ przez Anakin_Skywalker Początkujący (280 p.)

Siemanko, mam taki problem. Mianowicie nie wiedzieć czemu wyskakuje mi błąd podany w temacie pytania. Sprawdziłem go w google, jednak w większości problem dotyczył średnika postawionego tuż za instrukcją switch, jednak u mnie go nie ma. Tutaj jest mój kod:

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
string imie, nazwisko;
int nr_telefonu;

int main()
{

   fstream plik;

   plik.open("wizytowka.txt", ios::in);

   if(plik.good()==false)
     {

       cout<<"Brak takiego pliku!";
       exit(0);
     }
     string linia;
     int nr_linii=1;
     while(getline(plik,linia))
     {
        switch(nr_linii)

        case '1':
            {
            imie=linia;
             break;
            }

        case '2':
            {
            nazwisko=linia;
             break;
            }
        case '3':
            {
             nr_telefonu=atoi(linia.c_str());
              break;
            }

         nr_linii++;
     }


   plik.close();

   cout<<imie<<endl;
   cout<<nazwisko<<endl;
   cout<<nr_telefonu<<endl;
    return 0;
}

 

4 odpowiedzi

+2 głosów
odpowiedź 31 stycznia 2016 przez draghan VIP (106,230 p.)

Musisz ująć wszystkie case'y w klamry:

switch(sth)
{
   case a:
      break;
   case b:
     break;
}

 

EDIT: Patrycjerz mnie uprzedził. :)

 

0 głosów
odpowiedź 31 stycznia 2016 przez chomek Gaduła (4,500 p.)
edycja 31 stycznia 2016 przez chomek

Wydaje mi się ze próbujesz porównać int nr_lini z '1', '2', '3' czyli charami zamień to na 1, 2, 3 czyli będzie case 1: i brak klamerek

switch(arg)
{
    case 1:
break;
case 2:
 break;

}

 

0 głosów
odpowiedź 31 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)

A niby jak wygląda instrukcja switch?

switch(zmienna)
{
case wartosc_1:
    //jakiś kod
    break;
    
case wartosc_2:
    //jakiś kod
    break;
    
case wartosc_n:
    //jakiś kod
    break;
    
default:
    //jakiś kod
    break;
}

Z kolei porównywanie liczby do znaku.

0 głosów
odpowiedź 31 stycznia 2016 przez Anakin_Skywalker Początkujący (280 p.)
Posłucham waszych wszystkich rad, tj usunąłem apostrofy z case'ów, dodałem case 4 z defaultem i ująłem wszystkie case'y w klamry, jedank problem nie zniknął
komentarz 31 stycznia 2016 przez chomek Gaduła (4,500 p.)
Wrzuć kod po zmianie
komentarz 31 stycznia 2016 przez Anakin_Skywalker Początkujący (280 p.)
a nie, jednak mój błąd, zapomniałem usunąć jednej klamry, teraz jest ok, trzeba było po prostu wstawić tego defaulta i wziąć wszystkie case'y w klamry, dzięki wszystkim za pomoc
komentarz 31 stycznia 2016 przez draghan VIP (106,230 p.)
Tylko o klamry chodziło, label default jest opcjonalny. ;)

Podobne pytania

–1 głos
3 odpowiedzi 506 wizyt
0 głosów
0 odpowiedzi 1,005 wizyt
pytanie zadane 1 listopada 2019 w C i C++ przez Hubertius Bywalec (2,970 p.)

92,589 zapytań

141,439 odpowiedzi

319,686 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...