istream operator>>



  • hallo

    ich bin noch nicht so erfahren in c++, kenne aber ein paar basics.
    ich wollte für meine eigene klasse einen istream operator>> schreiben weil die syntax für den nutzer meiner klasse intuitiver ist. kleines code-beispiel:

    class foo
    {
        //...
    };
    int main()
    {
        foo instance;
        std::cin >> instance;
    }
    

    nun möchte ich ein verhalten erzeugen, bei welchem das programm so lange wartet, bis ein gewünschter delimitor (in diesem fall wahrscheinlich '\n') eingegeben wurde. wie geht das?



  • Vielleicht hilft dir das hier:

    Klick



  • Was willst du denn eingeben?



  • @Fuchs
    aus dem link werde ich iwie nicht schlau, sorry

    @out
    eingegeben werden soll ein einfacher term wie z.b. "2x^3+7", den ich dann innerhalb des operators interpretiere (ja, das bekomme ich hin, das ist nicht das problem). in der klasse werden dann die relevanten attribute des terms gespeichert. die idee ist es, dass der benutzer aufgefordert wird, einen term einzugeben, und dann - sobald er enter drückt - der term in die datenstruktur gepackt wird.



  • Was hast du denn selbst schon probiert.



  • doktor banane schrieb:

    eingegeben werden soll ein einfacher term wie z.b. "2x^3+7", den ich dann innerhalb des operators interpretiere (ja, das bekomme ich hin, das ist nicht das problem). in der klasse werden dann die relevanten attribute des terms gespeichert. die idee ist es, dass der benutzer aufgefordert wird, einen term einzugeben, und dann - sobald er enter drückt - der term in die datenstruktur gepackt wird.

    Guckst Du hier. Wenn Du bei Zeilenende aufhören willst, so kannst Du z.B. ein std::noskipws hinzufügen, dann hält das Lesen bei jedem White Character an (s. Zeile 126 im Listing und Kommentar darunter).



  • okay, nach umfangreichem rumprobieren hab ich das problem schlussendlich gelöst mithilfe von Werner Salomon's code. danke an alle


Anmelden zum Antworten