2017-12-18 17 views
-3

Ich habe ein Projekt in C++ und muss den größten Dateinamen aus der Textdatei finden. Meine Textdatei Beispiel:C++ Wie lese ich die Spalte aus der Textdatei?

foundedindex = instline.find(" "); 
    inst_host = instline.substr(0, foundedindex); 
    //cout << inst_host << " a" << endl; 
    obj[count].sethost(inst_title); 

Also, ich nur „index.html“ lesen möchten, „23, html“, „24.html“ usw. Wenn ich trennen alle Zeile nach der anderen durch, wie Im Code dauert das Sortieren zu viel Zeit. Bitte helfen Sie mir.

+5

Bitte schreiben Sie Code, Fehler, Beispieldaten oder Textausgabe hier als Nur-Text, nicht als Bilder, die schwer zu lesen sind, können nicht kopiert werden, um Code zu testen oder in Antworten zu verwenden, und sind feindlich diejenigen, die Bildschirmleser verwenden. Sie können Ihre Frage bearbeiten, um den Code im Hauptteil Ihrer Frage hinzuzufügen. Verwenden Sie die Schaltfläche '{'} ', um beliebige Codeblöcke zu formatieren, oder versehen Sie sie mit vier Leerzeichen für denselben Effekt. – tadman

+0

Verwenden Sie 'std :: getline()', 'std :: istringstream' und den Extraktionsoperator' >> ', um nur einen Teil einer Eingabezeile zu erhalten. – user0042

+1

Sie scheinen Code und Daten vermischt zu haben. – Beta

Antwort

0

Dies ist eine Möglichkeit, die Spalten jeder Zeile zu erhalten.

std::string temp; 
std::vector<vector<std::string>> data; 
while(std::getline(file, temp)) 
{ 
    std::vector<std::string> x; 
    std::istringstream liney(temp); 
    while(std::getline(liney, temp, ' ')) 
    { 
     x.push_back(temp); 
    } 
    data.push_back(x); 
} 
// Then using a column loop through a 2d array. 
int row = 0; 
for(int i = 0; i<data[row].size(); i++) 
{ 
    for(int s = 0; s<data.size(); s++) 
    { 
     data[s][i]; // Do something 
    } 
    row++; 
} 

Hoffe, das hilft.

+0

@ user0042 Ich habe meinen Beitrag bearbeitet, um Ihren Vorschlag zu reflektieren –

+0

@ user0042 Entschuldigung, das sollte gut sein. –

+0

Danke Jake Freeman – Alkyonemis

Verwandte Themen