Anfängerproblem, Ausgabe von String aus Strukturen



  • Hi,

    ich möchte Strings, die ich vorher in eine Strukur eingelesen habe, wieder auslesen. Leider wird andauernd die Fehlermeldung

    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)

    ausgeworfen. Ich kann damit nichts anfangen.

    Danke

    mfg

    Alex

    ---------

    #include <iostream>

    using namespace std;

    struct Datum{
    int t;
    int m;
    int j;
    };

    struct KirchenDaten{
    Datum gebTag;
    Datum todTag;
    Datum hochTag;
    };

    typedef string Text;

    struct Person{
    Text namen[3];
    KirchenDaten *pkirch;
    int plz;
    Text ort;
    };

    int main(){

    cout << "hallo123" << endl;

    //Anlegen von er -- wie Zugriff auf die Daten ???

    Person er;
    er.namen, "hans", "otti", "semel" ; //krass Komma
    Datum daten= {12,12,1978};
    er.pkirch, &daten;

    cout << "ok. er eingelesen " << endl;

    cout << er.namen[0] << endl;
    //Anlegen von psie -- wie Zugriff auf die Daten ???
    Person sie;
    Person *psie;
    psie= &sie;
    psie->namen[0]= "Marie";
    psie->namen[1]= "Luise";
    psie->namen[2]= "von Schnattendorf";

    string vorname= psie->namen[0];

    string test= "hallo123" ;
    //cout << "Name von psie " << psie->namen[0] << " " << psie->namen[1] << " " << psie->namen[2] << endl;
    //cout << "" << vorname << endl;
    cout << vorname << endl;

    //cout << "" << test << endl;

    //Ausgabe des Geburtsmonats von er

    //Ausgabe aller Namen von psie

    //Ausgabe des Vornamen von psie mit der Funktion ErmVorname

    return 0;

    }

    ------- 😞



  • Erstens würde ich da auch noch ein "#include <string>" erwarten.
    Zweitens, warum setzt du dort einen typedef für string ein?
    Und drittens: Der Code:

    er.namen, "hans", "otti", "semel" ; //krass Komma
    

    sieht zwar "krass" aus, macht aber effektiv gar nichts.



  • Ja das mit dem Krass. Ich find es halt etwas kryptisch. Das Komma fällt nicht sofort ins Auge (denke gewohnheitssache) und von C und Java war ich es gewohnt direkt mit Zuweisungen (= ) zu arbeiten.

    Text statt String ist ne Sache von userem Lehrmeister. Ich denke die Synonymanwendung von typedef soll geübt werden.

    Ja, ja die string Bibliothek. Ich hatte damit nicht gerechnet. Danke

    🙂


Anmelden zum Antworten