witam, mam problem z instrukcją switch case, a dokładniej wyskakuje błąd:
error: 'liczba' cannot appear in a constant-expression
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <time.h>
using namespace std;
string postac;
int liczba;
int main()
{
srand(time(NULL));
liczba = rand()%5+1;
cout<<liczba<<endl;
fstream plik;
plik.open("postacie.txt",ios::in);
if (plik.good()==false)
{
cout<<"Plik nie istnieje!";
exit(0);
}
string linia;
int nr_linii=1;
while(getline(plik, linia))
{
switch(nr_linii)
{
case (liczba): postac = linia; break;
}
nr_linii++;
}
plik.close();
cout<<postac<<endl;
return 0;
}
Program polega na pobraniu z pliku tekstowego postaci wypisanych pod sobą i wylosowaniu jednej z nich. Zapewne problem leży gdzieś przy zapisie "case (liczba):", ponieważ gdy wpisuje np. "case 2:" to normalnie wypisuje mi postać z 2 linijki. Podejrzewam że problem okaże się błahostką, ale trochę już przy tym siedze i nie moge sobie z tym dać rady.
Z góry dziękuję za wszelką pomoc