Das Lesen in einer unbekannten Anzahl von ganzen zahlen durch Leerzeichen getrennt in einen Vektor pro Zeile

Jede Zeile meiner Datei besteht aus einer unbekannten Anzahl von ganzen zahlen, die durch Leerzeichen getrennt sind. Ich würde gerne Lesen, in der jede Zeile als ein Vektor, der diejenigen ganzen zahlen.

Hier ist ein Beispiel einer solchen Datei:

11 3 0 1
4 5 0 3
2 3 4 1
23 4 25 15 11
0 2 6 7 10
5 6 2
1
11

Habe ich in der Lage zu Lesen, die in kleinen Mengen von Daten, die erfolgreich mit folgender Methode (Beachten Sie, dass outer_layers ist ein Vektor, enthält diese Vektoren, die ich versuche zu füllen):

for (int i = 0; i < outer_layers.size(); i++)
{
    while (in >> temp_num)
    {
        outer_layers[i].inner_layer.push_back(temp_num);
        if (in.peek() == '\n')
            break;
    }
}

Jedoch, wenn ich versuche zu Lesen, die in größeren Mengen von Daten, manchmal ist es Lesen werden, in zwei Linien unter einem Vektor. In einer der Dateien, aus 24 Zeilen, er Las zwei-Liner auf zwei Gelegenheiten, so zuletzt zwei Vektoren haben keine Daten.

Ich kann nicht umbrochen, mein Kopf herum. Irgendwelche Ideen was ich falsch mache?

EDIT: Etwas interessant ich habe bemerkt, in einige der Linien, die "trouble-maker" - Datei ist diese:

Sagen wir, es sind drei Linien.

23 42 1 5
1 0 5 10
2 3 11

Zeile #1 liest gerade fein als 23 42 1 5; jedoch, Zeile #2 und #3 bekommen zusammen zu Lesen als 1 0 5 10 2 3 11.

In Notepad++ Sie sehen Prima aus, jede in eine eigene Zeile. Jedoch im Editor, Sie sehen so aus:

23 42 1 51 0 5 10 2 3 11

Wenn Sie bemerken, die 5 (Letzte integer von Zeile #1) und 1 (erste integer von Zeile #2) nicht durch Leerzeichen getrennt sind; jedoch 10 und 2 sind durch ein Leerzeichen getrennt.

Habe ich bemerkt, dass das Verhalten auf ein doppeltes-Lesen-in den Zeilen. Wenn Sie sind durch ein Leerzeichen getrennt sind, dann sind Sie beide gelesen. Nicht sicher, warum dieses Auftritt, wenn man bedenkt es sollte noch eine neue-Zeile-Zeichen in es für Notepad++ anzeigen, die in separaten Zeilen, habe ich Recht?

InformationsquelleAutor B.K. | 2013-11-29
Schreibe einen Kommentar