2016-11-07 6 views
2

正しく読み込む方法を理解するだけです。各行の異なる文字列を読みたい場合は、ファイルから次のテキストを読み込む方法を教えてください。各行は、私は私のコードでこのような何かを試してみましたが、私はプログラムが終了していているかどうかを確認する方法を知らない、異なるサイズ(1行目は、3つの文字列を持っている可能性があり、2行目は、100個の文字列を持つことができる)行の最後まで文字列を読む

2 //Number of lines 
A AS BPST TRRER 
B AS BP 

を持つことができますラインの。

ifstream fich("thefile.txt"); 

fich >> aux; //Contain number of line 

for(int i=0;i<aux;i++){ //For each line 
    string line; 
    getline(fich, line); 

    char nt; //First in line it's always a char 
    fich >> nt; 

    string aux; 

    while(line != "\n"){ //This is wrong, what expression should i use to check? 
     fich >> aux; 
    //In each read i'll save the string in set 
    } 
} 

だから、最後に、私はしたい、そのセットが含まれています{{A,AS,BPST,TRRER} {B,AS,BP}}

感謝を。 '\n'getline()機能によって除去されたため

+0

['std :: istringstream'](http://en.cppreference.com/w/cpp/io/basic_istringstream)を使って行を解析します。 –

+0

参考になる読書:http://stackoverflow.com/questions/7868936/read-file-line-by-line/7868998#7868998オプション2を参照してください。 – user4581301

答えて

2
while(line != "\n"){ //This is wrong, what expression should i use to check? 

はい。

string aux; 
std::istringstream iss(line); 
while(iss >> aux) { 
    // ... 
} 

はまた、注意してください:

fich >> aux; //Contain number of line 

がであなたを残します

std::istringstreamを使用して、現在lineの終わりまでの単語の任意の数を解析することは容易です空の行はstd::getline()で読み込まれます。この場合、'\n'はその操作から残されます(Using getline(cin, s) after cin詳細については、を参照してください)。

関連する問題