Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z kompilacja programu

Ostatnio zmodyfikowano 2022-06-25 20:29
Autor Wiadomość
sushi2021
Temat założony przez niniejszego użytkownika
Problem z kompilacja programu
» 2022-06-24 23:42:07
Witam. Od paru dni mam styczność z C++. Po przerobieniu paru lekcji doszedłem do odczytu i zapisu pliku tekstowego. Stworzyłem prosty przykład poniżej, który nie chce się skompilować. Pojawiają się następujące błędy: a) Błąd (aktywny) E0121 etykiety case można użyć tylko w instrukcji switch wiersz 48 i 51, b) Błąd C2046 niedozwolony case - wiersz 48 i 51. Mógłby ktoś mi pomóc z tymi problemami. Za pomoc z góry dziękuje. Kod programu poniżej.
C/C++
#include <iostream>
#include <fstream>  
//biblioteka do pracy z plikami
#include <cstdlib>
#include <string>

using namespace std;

string imie, nazwisko;
int nr_tel;

int main()
{
   
cout << "Podaj swoje imie: " << endl;
   
cin >> imie;
   
cout << "Podaj swoje nazwisko: " << endl;
   
cin >> nazwisko;
   
cout << "Podaj nr telefonu: " << endl;
   
cin >> nr_tel;
   
   
fstream plik; //zmienna plikowa
    //zapis do pliku
   
plik.open( "wizytowka.txt", ios::out | ios::app ); //stworzenie i otwarcie pliku "wizytowka.txt"
    // "ios::out" - za kazdym razem zastepuje wczesniejszy plik - zapisuje wczystko od nowa
    //"ios::app" - dopisuje nowe wartosci na koncu pliku
   
   
plik << imie << endl; // wartosci  
   
plik << nazwisko << endl; // zapisane/wczytane
   
plik << nr_tel << endl; // do pliku "wizytowka.txt"
   
plik.close(); //zamykanie otwrtego pliku
   
    //odczyt z pliku
   
plik.open( "wizytowka.txt", ios::in );
   
if( plik.good() == false ) //spradzanie czy plik istnieje
   
{
       
cout << "Plik nie istniej. " << endl;
       
exit( 0 );
   
}
   
   
string linia; //zmienna pomocnicza "linia" przechowa pobrana linie txt
   
int nr_linii = 1; // licznik linii w "wizytowka.txt"
   
while( getline( plik, linia ) ) //pobieranie linii txt
   
{
       
switch( nr_linii )
       
       
case 1
   
: imie = linia;
       
break;
   
case 2:
       
nazwisko = linia;
       
break;
   
case 3:
       
nr_tel = atoi( linia.c_str() ); //konwersja string na int
       
break;
   
}
   
   
nr_linii++;
   
cout << imie << endl; // wartosci  
   
cout << nazwisko << endl; // zapisane/wczytane
   
cout << nr_tel << endl; // do pliku "wizytowka.txt"    
   
   
plik.close();
   
   
system( "pause" );
   
return 0;
}

P-179564
Krystianfr
» 2022-06-25 02:01:01
Wszystkie przypadki instrukcji switch muszą być w nawiasie {}.

C/C++
switch( nr_linii )
{
case 1:
   
imie = linia;
   
break;
case 2:
   
nazwisko = linia;
   
break;
case 3:
   
nr_tel = atoi( linia.c_str() ); //konwersja string na int
   
break;
}
P-179565
sushi2021
Temat założony przez niniejszego użytkownika
» 2022-06-25 20:29:02
Dziękuje za pomoc, już działa.
P-179568
« 1 »
  Strona 1 z 1