Witam,
Z uwagi, że jest to mój pierwszy post chciałbym się przedstawić. Mam na imię Łukasz i interesuje się programowaniem od 1 miesiąca. Po przerobieniu 7 odcinków kursu C++ postanowiłem stworzyć swój pierwszy, autorski program. Padło na program odpytujący ze słówek z j. angielskiego, które będą pobierane z pliku tekstowego. Plik tekstowy będzie miał strukturę:
widelec (słówko PL)
fork (słówko Ang.)
krzesło (słówko PL)
chair (słówko Ang.)
itd.
Teraz chciałbym, żeby program wczytał i wyświetlał w konsoli słówko polskie, ja wprowadzam jego odpowiednik z j. angielski. Program dalej dokonuje porównania, czy odpowiedź jest poprawna. Jak tak, otrzymuje stosowny komunikat, jak nie to program komunikuje błędną odpowiedź i podaje poprawne słówko angielskie.
Poniżej zamieszczam kod, który się kompiluje, ale są w nim dwa problemy:
1. Pytania i odpowiedzi nie są wczytywane linijka po linijce do odpowiednich tablic.
2. Nie następuje poprawne porównanie odpowiedzi z wartościami jakie powinny być zaczytane z pliku tekstowego.
Spędziłem 2h na analizie, co poszło źle, ale bez skutecznie. Wciąż jestem w tym samym miejscu. Będę wdzięczny za pomoc lub info. co jest napisane źle.
#include <iostream>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
string ang[5], pl[5], poprawna[5];
string odpowiedz;
int main()
{
fstream plik;
plik.open("slowka.txt", ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
int nr_linii=0;
string linia;
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: pl[nr_linii] = linia; break;
case 2: ang[nr_linii] = linia; break;
}
if(nr_linii==2) {nr_linii=1;}
nr_linii++;
}
plik.close();
for(int j=0; j<=4; j++){
{
cout<< pl[j] <<endl;
cout <<"Twoja odpowiedz: " << endl;
cin >> odpowiedz;
}
if(ang[j]==odpowiedz){cout << "Dobrze!" << endl;}
else{cout << "Zle, brak punktu! Poprawna odpowiedz to: " << ang[j] << endl;}
}
cout<< "Koniec quizu";
return 0;
}