Witam. Postanowiłem pójść dalej jeśli chodzi o temat pobierania danych z pliku txt chciałem zrobić program który zrobi możliwość wyboru kilka Quizów z różnych dziedzin do wyboru. Problem generalnie tkwi w tym, że kompilator nie chce mi wczytać pliku gdyż pokazuje mi błąd w 43 linijce:
|43|error: incompatible types in assignment of 'std::string {aka std::basic_string<char>}' to 'std::string [12] {aka std::basic_string<char> [12]}'|
|48|error: cannot convert 'std::string {aka std::basic_string<char>}' to 'char' in assignment|
|69|error: no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'std::string [12] {aka std::basic_string<char> [12]}')|
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
char dziedzina;
string tresc [12];
string odpA[12],odpB[12],odpC[12],odpD[12];
string odpowiedz[12];
string poprawna;
int main()
{
cout << "WITAJ W TELETURNIEJU" << endl;
cout << " ______________________ "<< endl;
cout << "Wybierz dziedzine która ciebie interesuje" <<endl;
cout << "1. QUIZ Z WIEDZY POLSCE" << endl;
cout << "2" << endl;
cout << "3" << endl;
switch(dziedzina)
{
case '1':
cout<<"Quiz z wiedzy o Polsce"<<endl;
int nr_lini=1;
string linia;
int nr_pytania=0;
fstream plik;
plik.open("polska.txt",ios::in);
if (plik.good()==false)
{
cout<<"Nie ma takiego pliku"<<endl;
exit(0);
}
while (getline(plik,linia))
{
switch (nr_lini)
{
case 1: tresc=linia; break;
case 2: odpA[nr_pytania]=linia; break;
case 3: odpB[nr_pytania]=linia; break;
case 4: odpC[nr_pytania]=linia; break;
case 5: odpD[nr_pytania]=linia; break;
case 6: poprawna[nr_pytania]=linia; break;
}
if (nr_lini==6)
{
nr_lini=2;nr_pytania++;
}
nr_lini++;
}
plik.close();
plik.clear();
for (int i=0;i<=11;i++)
{
cout<<endl<<tresc[i]<<endl;
cout<<"A. "<<odpA[i]<<endl;
cout<<"B. "<<odpB[i]<<endl;
cout<<"C. "<<odpC[i]<<endl;
cout<<"D. "<<odpD[i]<<endl;
cout<<"Twoja odpowiedz: ";
cin>>odpowiedz;
transform(odpowiedz.begin(),odpowiedz.end(),odpowiedz.begin(),::tolower);
}
}
return 0;
}
Program nie jest jeszcze dokończony, ale ze wzgledów praktycznych zawsze sprawdzam błędy przed napisaniem całego programu. Domyślam się, że chodzi coś tutaj z funkcją char (chyba że się mylę). Proszę o pomoc. Co jest błędem i dlaczego. Byłbym wdzięczny o wytłumaczenie błędu który popełniam. Przy pisaniu programu wzorowałem się na kursie Mirosława Zelenta odc 7.