Probleme mit Strings



  • Hi

    ich hab folgnden code:

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    bool Bauen = 0;
    
        string Start, Komma, Klammer1, Klammer2, Klammer3, Klammer4, Striche, Semikolon, Leer, NEEDT, FIXT, Endergebnis1, Endergebnis2, Endergebnis3;
        Start = "func void Rtn_Need_Ta_6104 ()";
        Komma = ",";
        Klammer1 = "{";
        Klammer2 = "}";
        Klammer3 = "(";
        Klammer4 = ")";
        Semikolon = ";";
        Striche = """;
        NEEDT = "TA_NeedTime";
        FIXT = "TA_FixTime";
        Leer = " ";
    
    int main(int argc, char *argv[])
    {
        ofstream TA ("TA.txt");
    
        Endergebnis1 = Start;
        Endergebnis2 = Klammer1;
        TA<<Endergebnis1;
        TA<<Endergebnis2;        
        int Stunde1, Minuten1, Stunde2, Minuten2;
        string WPF, WPN;
        int Stunde11, Minuten11, Stunde21, Minuten21;
    
        while(Bauen == 0)
        {
        cout<<"Geben sie Startstunde von TA_FIXTIME ein:";
        cin>>Stunde1;
    
        if(Stunde1 == 111)
        {
                   Bauen = 1;
        }
    
        cout<<"Geben sie Startminute von TA_FIXTIME ein:";    
        cin>>Minuten1;
        cout<<"Geben sie Endstunde von TA_FIXTIME ein:";
        cin>>Stunde2;    
        cout<<"Geben sie Endminute von TA_FIXTIME ein:";
        cin>>Minuten2;   
        cout<<"Geben sie den WP ein:";
        cin>>WPF;
    
        Endergebnis3 = FIXT + Leer + Klammer3 + Stunde1 + Komma + Minuten1 + Komma + Stunde2 + Komma + Minuten2 + Komma + Striche + WPF + Striche + Klammer4 + Semikolon;
        TA<<Endergebnis3;    
    
        if(Bauen == 0)
        {     
        cout<<"Geben sie Startstunde von TA_NEEDTIME ein:";
    
        if(Stunde1 == 111)
        {
                   Bauen = 1;
        }
    
        cin>>Stunde11;        
        cout<<"Geben sie Startminute von TA_NEEDTIME ein:";    
        cin>>Minuten11;
        cout<<"Geben sie Endstunde von TA_NEEDTIME ein:";
        cin>>Stunde21;    
        cout<<"Geben sie Endminute von TA_NEEDTIME ein:";
        cin>>Minuten21; 
        cout<<"Geben sie den WP ein:";
        cin>>WPN;
        Endergebnis3 = NEEDT + Leer + Klammer3 + Stunde11 + Komma + Minuten11 + Komma + Stunde21 + Komma + Minuten21 + Komma + Striche + WPN + Striche + Klammer4 + Semikolon;
        TA<<Endergebnis3;
        }   
        }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Das ganze hat 2 probleme:

    Einmal meckert der compiler bei jeder zuweisung des stringinhalts:
    expected constructor, destructor, or type conversion before '=' token

    Also bei den ganzen teilen oben am anfang.

    2tens. er kommt nich damit klar, das ich die strings addiere. es kommt folgende meldung: no match for 'operator+' in 'std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)(&Klammer3)))) + Stunde1'

    Könntet irh mir da ma nen tipp geben??

    Eldarion



  • Eldarion schrieb:

    Einmal meckert der compiler bei jeder zuweisung des stringinhalts:

    Das liegt daran, dass (im Gegensatz zu Initialisierungen) Zuweisungen in Funktionen stehen müssen. Du kannst deinen Code nicht einfach irgendwohin schreiben.



  • Und dazu:

    Eldarion schrieb:

    2tens. er kommt nich damit klar, das ich die strings addiere.

    Du addierst nicht nur Strings. Da sind auch noch ein paar ints dabei.



  • Eldarion schrieb:

    ...

    ...
        Striche = """;
    ...
    

    ...

    Wie schon das Foren-Syntaxhighlighting zeigt, macht das nicht das, was Du willst.

    Du willst vermutlich

    Striche = "\"";
    

    Gruß,

    Simon2.



  • @MFK: scheiße, wieso is mir das nur passiert.

    @simon2: ich dachte das geht, weil das mti dem highliting im compiler gepasst hat. trotzdem danke 😉

    Edit: könnte mri einer sagen, wie ich einen integer in einen string umwandel? ich hab nur methoden fürs umwandeln in ein chararray gefunden. 😞



  • Hallo

    siehe C++ FAQ, Thema Einmal String und zurück

    bis bald
    akari


Anmelden zum Antworten