Czołem,
Widzę, że są tu światłe głowy :) więc może zwrócę się do Was z takm problemem, z którym nie mogę się uporać. Jestem w C++ na początku drogi.
Po obejrzeniu odcinka:
http://miroslawzelent.pl/kurs-c++/pliki-tekstowe-zapis-odczyt-fstream/
stworzyłem sobie w C++ program, który pobiera mi z notatnika pytanie i odpowiedź.
Następnie prosi mnie o wpisanie dokładnie takiej odpowiedzi (którą sobie pobrał z notatnika)
No i w większości progam działa fajnie ale czasem nawet jak porównuje te same "stringi" to wyskakuje mu błąd.
Dzieje się tak, gdy porównuje np: wyrazy ze spacją.
Program jest przygotowany do robienia takich powtórek z programowania i uczy dokładności.
I przykładowo w czasie tutoriala można sobie robić notatki na zasadzie pytanie odpowiedaź a po jakimś czasie sobie powtórzyć.
Ma ktoś pomysł jaki może być problem? Może jakieś inne ulepszenie?
Pozniżej skrypt, jak ktoś chce to może sobie na nim pracować oczywiście wymaga pliku tekstowego.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include<windows.h>
#include<stdio.h>
using namespace std;
string linia, pytanie[100], poprawna[100], odpowiedz;
int nr_pytania=0, nr=1, pyt=0;
char poprawka=0;
int nr_linii=1;
int main()
{
fstream plik;
plik.open("refresh.txt",ios::in);
if (plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
else{
cout<<"Od ktorego pytania chcesz zaczac ?"<<endl;
cin>>pyt;
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: pytanie[nr_pytania]=linia ; break;
case 2: poprawna[nr_pytania]=linia; break;
}
if(nr_linii==2){nr_linii=0; nr_pytania++;}
nr_linii++;
}
plik.close();
for(int i=pyt;i<=100;i++){
cout<<"Pytanie nr "<<pyt+nr++<<": "<<endl<<pytanie[i]<<endl;
cin>>odpowiedz;
cout<<endl;
if (odpowiedz!=poprawna[i]){
cout<<"Zla odpowiedz prawidlowa odpowiedz to: "<<endl;
cout<<poprawna[i]<<endl<<endl;
cout<<"chcesz poprawic ? "<<endl;
Sleep(1000);
cin>>poprawka;
getchar();
if(poprawka=='1')
{i--;nr--;}
else if(poprawka=='2') {i=i+1;poprawka=='0';
}
else {cout<<"Bledny znak,"<<endl;
i--;nr--;
}
}
else {
cout<<"BRAWO"<<endl<<endl;
}
}
}