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 '=' tokenAlso 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