2016-06-23 8 views
-4

Dies ist ein C++ - Problem. Ich habe einige Sätze in einer Datei. Das erste Wort jedes Satzes ist ein Benutzername. Die Sache, die ich machen möchte, ist, alle Spalten von Zeilen anzuzeigen, die einen bestimmten Benutzernamen haben.zeigen einige Zeilen einer Datei in Abhängigkeit des ersten Wortes

zum Beispiel: , wenn die Datei wie folgt ist:

an.der 1 el se¤or de los anillos jrr tolkien 12/9/1999 430 novela  
Jon  2 el arbol de la ciencia pio baroja 12/03/1911 123 novela 
Jon  3 Harry popoter Ander Loizaga 23/06/2016 34 drama  
an.der 2 el arbol de la ciencia pio baroja 12/03/1911 123 novela  
an.der 1 el se¤or de los anillos jrr tolkien 12/9/1999 430 novela 

Zum Beispiel, wie alle zeigen die Linien von Jon

Ich brauche deine Hilfe

+0

Für jede Zeile Verwendung 'strncmp()', die die ersten n Zeichen einer Zeichenkette verifiziert. –

+0

Haben Sie reguläre Ausdrücke verwendet? Dies ist ein perfektes Problem, das mit regulären Ausdrücken gelöst werden muss. [boost] (http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax.html) hat eine sehr schöne Bibliothek dafür. – Sam

+1

Gibt es einen bestimmten Grund, warum du 'grep^Jon' nicht einfach benutzen kannst? – Useless

Antwort

0

Hoffnung kann dieser Code löst Ihre Problem.

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

int main() 
{ 
     std::string line; 
     std::ifstream infile("infile"); //infile is your sample file. 
     std::string name("Jon"); //You can get this from prompt 

     while(std::getline(infile, line)) 
     { 
       if(name.compare(0, name.length(), 
         line, 0, name.length()) == 0) 
       { 
         std::cout<<line<<std::endl; 
       } 
     } 

     infile.close(); 
     return 0; 
} 

Und die ouput:

$ ./readline 
Jon 2 el arbol de la ciencia pio baroja 12/03/1911 123 novela 
Jon 3 Harry popoter Ander Loizaga 23/06/2016 34 drama 
+0

Sie haben mein Problem gelöst. Vielen Dank – jmarco10

Verwandte Themen