Problem bei Vokabeltrainer in C++ mit FLTK-Fenster



  • Hi,
    ich bin dabei einen Vokabeltrainer mit C++ und der FLTK-Bibliothek zu erstellen,
    bin auch schon recht weit, allerdings hatte ich erst 1 Jahr Informatik, deshalb ist mein Code wahrscheinlich sehr unsauber und manche Teile falsch gelöst.
    Das Problem liegt momentan bei dem Kontrollbutton bei dem eig. Vokabel(vom input) und Antwort(aus Deutschantwortdatei) verglichen werden soll,
    denn alles läuft bis man auf den Kontroll-button drückt(dann belibt alles hängen/debugger macht keine Fehlermeldung). 😞
    In den Dateien VokabelnE und DE stehen die Vokabel mit Leerzeichen formatiert, d.h. man müsste an den input noch die fehlenden Zeichen dranhängen.
    Wär echt nett, wenn mir jemand helfen könnte. 😉 👍
    Sorry, dass das so viel Code ist aber ich wusste nicht wie ich es hätte besser kürzen können...
    Hier erst mal den Code(gekürzt/hoffe verständlich):

    [cpp]//alle benötigten includes 
    //mit *gekenntzeichnet funktioniert alles
    //mit -gekenntzeichnet sind probleme oder schlecht gelöst
    
    class Kreis: public Fl_Widget* 
    class Strich: public Fl_Widget*
    
    //hier wird alles andere deklariert*
    std::ifstream file1;
    std::string Englisch = "VokabelnE.txt";
    std::string Deutsch = "VokabelnDE.txt";
    std::string Vokabel;
    
    void neu(Fl_Widget *element, void *daten) //button weiter ruft neue Vokabel auf per Zufall aus VokabelnE.txt
    
    void check(Fl_Widget *element, void* y) //-
    {
    	Vokabel = input->value();
    	std::string antwort;
    	file1.open(Deutsch.c_str()); //- anders ließ sich das ganze nicht öffnen
                if(file1)
                {
                 std::string text2;
                            while(!file1.eof())
                            {
                            	p=12;
                            	std::string buffer;
                            	file1.seekg ( p*v );
                            	getline(file, buffer, '\t');
                            	text2 += buffer ; // Zeilen zusammensetzen
                            }
    					   text2=antwort;
    					   eout->value(antwort.c_str());
                            file1.close();
                }
                // else Fehlermeldung
    
    	 if (antwort==Vokabel) //hier liegt das eig. problem glaub ich
    	{
    	    element->window()->add//richtig zeichen
    
    	}
    	 else
    	{
    	 	element->window()->add//falsch zeichen;
    	}
        return;
    };
    
    int main (int argc, char ** argv)*
    {
      //window;
      //box ("Vokabeltrainer 1.0");
      butcheck = new Fl_Button ( "Kontrolle [ENTER]");
      butcheck ->callback(&check);
      butweiter = new Fl_Button ("WEITER [ALT]");
      butweiter ->callback(&neu);
      butweiter ->deactivate();
      eout = new Fl_Multiline_Output("Englisch: ");
      input = new Fl_Input ("Deutsch: ");
      window->end();
      //hier müsste nochmal für den anfang 'void neu' aufgerufen werden  
      eout->deactivate();  
      //Kreis und Strich werden beschrieben
      //Beenden
    }
    [/cpp]
    

    Vielen Dank schonmal an alle! 🙂
    Sorry nochmal für die länge! 😞


Anmelden zum Antworten