2016-05-03 26 views
0

ファイルを1行ずつ読み込み、各行の最初の単語を1つの文字列に格納し、次の単語を別の文字列の同じ行に格納する必要があります。ファイルを1行ずつ読み込み、各行を分割する方法

例行:aardvark n。シロアリを食べる筒状の鼻と長い舌を持つ哺乳動物。 [afrikaans]

word変数には最初の単語を格納し、dictionaryEntryクラスの定義変数には残りの行を格納する必要があります。

Javaで私が使用するのstring.Split()またはstring.indexOf()が、私は@NathanOliverが示唆したようにC++

ifstream inp(filename); 
while(getline(inp, line)) 
{ 
    //separate first word and rest of line 
    string word= 
    string rest= 
    DictionaryEntry de(word, rest); 
} 
+1

最初の単語を取得するには '>>'を使用し、残りの行には 'getline'を使用しますか? – NathanOliver

+0

'std :: string :: find_first_not_of'はあなたの友人になります。 – SergeyA

答えて

0
ifstream inp(filename); 
while(getline(inp, line)) 
{ 
    //separate first word and rest of line 
    string word= line.substr(0, line.find(" ")); 
    string rest= line.substr(line.find(" ") + 1); 
    DictionaryEntry de(word, rest); 
} 

std::string::substr:文字列の部分を返します。

std::string::find:文字列または文字の位置を返します。結果がない場合は "std :: string :: npos"を返します。

0

これをでやって行くだろう方法を見つけ出すことはできません。これは動作するはずです:

std::string FirstWord, line; 

while(inp >> FirstWord) 
{ 
    getline(inp, line); 
    // .. your stuff 
} 
関連する問題