2017-12-12 19 views
-1

für ein Programmierprojekt in C++ Ich muss durch eine TXT-Datei durchlaufen; Ich möchte jedoch nur die vierte Zeile in der Datei bis zum Ende durchlaufen. Wie würde ich das machen?Zugreifen auf eine bestimmte Zeile in TXT-Datei in C++

(Inhalt der txt-Datei mit dem Namen "Location.txt")

Location.txt:

13 5 
2 5 
5 1 
2 2 X 7924 
13 1 T 5555 
5 2 Q 8753 
19 4 Q 8434 
8 3 P 2341 
7 1 X 2523 

ich nur die Werte der 4. Zeile durch die letzte Zeile speichern will, ich don Ich weiß nicht, wie ich die ersten drei Zeilen überspringen oder diese Werte irgendwie speichern und löschen kann.

+4

Zeigen Sie uns, was Sie zu tun versucht. –

+0

Bitte zeigen Sie Ihren minimalen Code an. Ich nehme an, Sie verwenden wahrscheinlich nicht Ihre Zeilen (Zeile für Zeile) mit getline() in eine std :: string. Und das ist die Quelle deiner Verwirrung/Schwierigkeit. – drescherjm

+1

Da Sie Zeilen mit variabler Länge haben, können Sie nicht direkt in die 4. Zeile springen. Sie müssen die ersten 3 Zeilen lesen. Verwerfen Sie sie einfach nach dem Lesen. Dann können Sie das Lesen und Speichern ab der 4. Zeile nach Bedarf beenden. –

Antwort

1

können Sie getline wie vorgeschlagen nutzen bereits oder verwenden ignore:

#include <iostream> 
#include <fstream> 
#include <string> 

int main() 
{ 
    std::ifstream ifs("Location.txt"); 
    auto max_streamsize = std::numeric_limits<std::streamsize>::max(); 
    int lines_to_skip = 3; 

    int one, two, four; 
    std::string three; 

    for (int i = 0; i < lines_to_skip; ++i) 
     ifs.ignore(max_streamsize, '\n'); 

    if (ifs >> one >> two >> three >> four) 
     std::cout << one << "," << two << "," << three << "," << four << std::endl; 

    return 0; 
} 

Drucke:

2,2,X,7924 
Verwandte Themen