2017-10-06 2 views
-1

Ich versuche, eine Datei aus einem Textdokument in 2 Arrays zu lesen. Ich habe ausgeschlossen, dass das Problem in meinen anderen Funktionen oder meinen Hauptleitungen ist, und dass etwa 5 Zeilen Code übrig bleiben.C++ Datei in mehrere Arrays lesen

Es wird durch mein Dokument bis zum Ende durchlaufen, aber es gibt nur den TXT einmal durch die Schleife. Irgendwelche Gedanken wären großartig!

void load_donations(string donor[], string donation[]) 
{ 

    string text; 

    cout << "What *.txt file would you like to load? "; 
    cin >> text; 
    text += ".txt"; 
    cout << text << endl; 
    ifstream infile; 
    infile.open (text.c_str()); 
    int i = 0; //moves to next slot in array 

    while (!infile.eof()) 
    { 

     getline(infile, donor[i]); 
     getline(infile, donation[i]); 
     i++; 

    } 

    infile.close(); 
} 
+0

wont diese Arbeit Spende [i] = Spender [i]? – brownKnight

+0

Ich bin mir nicht sicher, was Sie sagen, ich sollte tun ... Aber was ich will, ist meine .TXT-Datei, wie folgt zu lesen. Jimmy feine Schuhe Henry Bargeld Herr Biggles Lebensmittel Steve Zeit Dann jede gerade Linie gehen in donor [i] und ungerade Zeilen in ein Array gehen [i]. Mein Problem ist, es scheint nur eine Schleife zu machen. Wenn ich einen Schleifenzähler schneide, wird er zeigen, dass er alle Zeilen durchläuft und sie nicht einfach in das Array speichert. – Hooch

+0

Unrelated [Warum wird iostream :: eof innerhalb einer Schleife als falsch angesehen?] (Https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-sidered-wrong) – user4581301

Antwort

-1

Dazu benötigen Sie dynamische Array von Zeichen und dann aus der Datei Zeichen für Zeichen lesen zu erklären und in der Schleife, dass Zeichen in dynamischer Array speichern.

Macht das für Sie Sinn?

+0

Es tut ... Wie stringstream? Mein Problem ist, dass es fast so zu funktionieren scheint, wie es ist, und dynamische Arrays sind im Moment ein Nein. – Hooch

+0

Können Sie einen Screenshot Ihrer Textdatei hochladen? –

1

Das Problem war, dass ich nicht meine Zählung von dieser Funktion an die Funktion übergeben, die mein Array ausgedruckt hat. Ich habe es nur bemerkt, als ich ein Minimum wie Peter vorgeschlagen habe. Zögere nicht mich auf den Weg zu treten.

+0

Deshalb ist MCVE Teil der Toolbox jedes erfolgreichen Programmierers. Oder jeder, den ich kenne. Ich empfehle dringend, den 'while (! Infile.eof())' Bug zu beheben, während du gerade dabei bist. Verwenden Sie 'while (getline (infile, donor [i]) && getline (Infile, Spende [i])) {i ++; } ' – user4581301