2016-06-23 7 views
-4

これはC++の問題です。私はファイルにいくつかの文章があります。すべての文の最初の単語はユーザー名です。私がしたいことは、特定のユーザー名を持つ行のすべての列を表示することです。例えばは、最初の単語に応じてファイルのいくつかの行を表示します

:ファイルは次のように だった場合:

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 

例えば

+0

、文字列の最初のn文字を検証 'strncmpはを()' を使います。 –

+0

正規表現を使用しましたか?これは正規表現で解決されるべき問題です。 [boost](http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax.html)にはとても良いライブラリがあります。 – Sam

+1

'grep^Jon'だけでは使えない特別な理由はありますか? – Useless

答えて

0

・ホープ、このコードは解決することができ、私はあなたの助けが必要ジョン

のすべての行を表示する方法をご問題。

#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; 
} 

そして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

あなたは私の問題を解決しました。どうもありがとうございました – jmarco10

関連する問題