Gibt es einen Einzeiler, um eine Datei in C ++ in eine Zeichenfolge einzulesen?

8

Ich brauche einen schnellen einfachen Weg, um eine Zeichenfolge aus einer Datei in Standard-C ++ zu erhalten. Ich kann meine eigenen schreiben, möchte aber nur wissen, ob es in C ++ schon einen Standardweg gibt.

Entsprechendes, wenn Sie Kakao kennen:

%Vor%     
robottobor 25.09.2008, 22:52
quelle

7 Antworten

17

Wir können es schaffen, aber es ist eine lange Linie:

%Vor%

Bearbeitet: Verwenden Sie "istreambuf_iterator" anstelle von "istream_iterator"

    
Rexxar 26.09.2008, 00:31
quelle
10

Es ist fast möglich mit einem istream_iterator (3 Zeilen!)

%Vor%

Bearbeitet - Zwischenstring-Stream wurde entfernt, kopiert jetzt direkt in den String und verwendet nun istreambuf_iterator, der Whitespace ignoriert (danke Martin York für Ihren Kommentar).

    
Doug T. 25.09.2008 23:00
quelle
3

Die Standard-C ++ - Bibliothek bietet hierfür keine Funktion.

    
Greg Hewgill 25.09.2008 22:54
quelle
2

Am besten kann ich 5 Zeilen machen:

%Vor%     
Adam Pierce 25.09.2008 23:00
quelle
2

Wie wäre es mit:

%Vor%     
njsf 25.09.2008 23:34
quelle
0

Wenn Sie es wie folgt tun (aber richtig gut verpackt, anders als unten), können Sie die Datei einlesen, ohne sich um ein 0x1A Byte in der Datei sorgen zu müssen (zum Beispiel), um das Lesen der Datei zu verkürzen. Die zuvor vorgeschlagenen Methoden werden auf einer 0x1A (zum Beispiel) in einer Datei ersticken.

%Vor%

Aber, yeh, es ist kein bereits implementiertes 1-Liner obwohl.

Edit: 0x1A war kein gutes Beispiel, da ios_base :: binary das abdecken wird. Aber auch dann geben mir C ++ - Streams oft Probleme beim Einlesen von PNG-Dateien mit .read (). Die Verwendung der C-Methode funktioniert besser. Kann mich einfach nicht an ein gutes Beispiel erinnern, warum. Es war wahrscheinlich mit .read () eine Binärdatei in Blöcken in einer Schleife statt, die ein Problem mit C ++ - Streams sein kann. Also, ignorieren Sie diesen Beitrag.

    
Shadow2531 26.09.2008 00:24
quelle
0
%Vor%

Es ist keine kurze oder einzelne Anweisung, aber es ist eine Zeile und es ist wirklich nicht so schlimm.

    
Puppy 30.08.2010 10:51
quelle

Tags und Links