[STRING] Unterschied << und append(str)
-
Hallo,
Gibt es einen unterschied zw.:
str1 << str2;
und
str1.append(str2);
ich weiß dass bei
append
der string am Ende eingefügt wird, ist das bei
<<
auch so?
-
das erste gibts überhaupt nicht
-
Gut zu wissen hab ich wohl mit Datei eingabe verwechselt
aber: fügtappend
vor dem einfügen des Strings ein Whitespace ein?
-
Mir ist gerade eingefallen das ich es auch selbst ausprobieren könnte
-
#include <iostream> #include <string> using namespace std; int main( ) { string test( "Hello" ); test.append( ", " ); test.append( "World!" ); cout << test << endl; }
Kurz gesagt: nein.
greetz, Swordfish
-
Was ist der unterschied zwischen
string txt = "hallo "; txt+="welt" //und string txt2 = "hallo "; txt2.append("welt");
Das erste macht glaub ich nen neuen string.
-
Kein Unterschied.
-
So da das nun geklärt ist stehe ich vor einem neuen Problem:
Wie kann ich eine ganze TXT file in einen String kopieren(die größe ist klein genug um in den String zu passen)
-
_Myt& operator+=(const _Elem *_Ptr) { // append [_Ptr, <null>) return (append(_Ptr)); }
+= ruft append auf, also spart man sich einen Aufruf, wenns nciht sowieso inline ist.
-
String schrieb:
So da das nun geklärt ist stehe ich vor einem neuen Problem:
Wie kann ich eine ganze TXT file in einen String kopieren(die größe ist klein genug um in den String zu passen)
Dateigröße auslesen, Größe des Strings anpassen und einlesen (per read()). Oder Zeilenweise (getline()) einlesen und immer an den String anhängen.
-
David_pb schrieb:
String schrieb:
So da das nun geklärt ist stehe ich vor einem neuen Problem:
Wie kann ich eine ganze TXT file in einen String kopieren(die größe ist klein genug um in den String zu passen)
Dateigröße auslesen, Größe des Strings anpassen und einlesen (per read()). Oder Zeilenweise (getline()) einlesen und immer an den String anhängen.
und wie kann ich die Dateigröße bzw. die Zeichenanzahl in der Datei auslesen?
-
Dateizeiger ans Ende der Datei setzten und die Position auslesen.
-
String schrieb:
So da das nun geklärt ist stehe ich vor einem neuen Problem:
Wie kann ich eine ganze TXT file in einen String kopieren(die größe ist klein genug um in den String zu passen)
http://c-plusplus.net/forum/viewtopic-var-p-is-1280471.html#1280471
-
Die String-Eingabe sorgt selber dafür, daß genug Platz reserviert wird, also brauchst du die Dateigröße auch nicht vorausberechnen - nimm einfach getline() und verkette die Strings dann immer miteinander:
ifstream file; string filetext, line; while(getline(file,line)) filetext += line+'\n';
-
getline hat als drittes argument, das Zeichen, mit dem die Zeile aufhört (normalerweise '\n'), welches nicht mit eingelesen wird. Dies kann man jederzeit durch in anderes ersetzen, beispielsweise, wenn man weiß, dass der gesamte text mit einem bestimmten zeichen aufhört.
-
und wenn ich EOF als endezeichen verwende? oder geht das nicht weils kein char ist? aber ich glaube da gabs mal was à la std::ios_base::eof oder std::char_traits::eof oder so, kann das sein?
-
std::ifstream in("blah.txt"); std::istringstream s; s << in.rdbuf(); std::string dateiinhalt = s.str();