Problem mit einem String



  • Also ich mal wieder 🙄
    mit folgendem Problem

    #include <iostream.h>
    #include <string>
    using namespace std;
    
    void main()//kein Kommentar zum void bitte
    {
    	string name;
    	cout<<"Willkommen zum Tagesberechner v0.1Beta"<<endl;
    	cout<<endl;
    	cout<<"Wie ist dein Name? ";
    	cin>>name;//Hier >>
    	cout<<endl;
    	cout<<"Hi "<<name<<". Gib bitte das Anfangsdatum ein im Format TT.MM.JJJJ ein.";//Hier die ersten <<
    }
    

    An den Beiden mit "Hier" gekennzeichneten stellen hab ich ein Problem oder besser gesagt mein Compiler hat eins, ich finde da keinen Fehler aber der Compiler meint das hier bei beiden:
    " error C2679: Binaerer Operator '>>' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)"
    Kann mir da mal einer weiterhelfen?? Und kann mir einer Sagen wie ich die länge des Strings bestimmen kann, so das er zb nur 4 Stellen maximal haben darf??
    THX 4 ALL Help



  • mach mal statt
    #include <iostream.h>
    lieber ein
    #include <iostream>



  • MMH Komisch jetzt funzt es, vorher gings ohne das .h nich 😕 Aber wie kann ich den String anweisen das er nur 4 Zeichen aufnehmen kann??



  • Raven2 schrieb:

    MMH Komisch jetzt funzt es, vorher gings ohne das .h nich :

    iostream.h und string vertragen sich nicht (umgekehrt vermutlich genauso)

    denn iostream.h ist das alte iostream - das sollte man nichtmehr verwenden.
    iostream ist neuer und kann deswegen auch string umgehen 🙂

    confused: Aber wie kann ich den String anweisen das er nur 4 Zeichen aufnehmen kann??

    garnicht. ein string kann soviel aufnehmen wie er speicher bekommt.
    suchst du etwa ein

    string s;
    for(int i=0; i<4; ++i)
    {
      s+=cin.get();
    }
    

    ?



  • Nein zu dem programm sollen später strings hinzukommen und ich will es so machen das man 3 Strings direkt nacheinander eingeben kann, ein Datum, ohne das man Enter drücken muß.



  • dann lies doch das ganze datum ein und zerlege den string dann.

    so kannst du auch fehl-eingabe besser abfangen.



  • Werd ich mal versuchen THX.


Anmelden zum Antworten