2011-01-10 13 views
0

ストリングストリームに関するいくつかの問題があります。stringstream.good()> VSとEclipseコンパイラでの動作が異なります

例:私はEclipseでこのコードを使用する場合

stringstream stream(commands); 

    while (true) { 
     string line; 
     getline(stream, line); 

     if (!stream.good()) 
      break; 
     if (line.size() > 0){ 
      lines.push_back(line); 
     } 
     else{ 
      break; 
     } 
    } 

それが期待通りに動作し、問題ありません。 Vistual Studio 2005でstream.good()これを使用して はなぜ

常に 偽を返すように見えますか?

私は本当にいくつかの説明を感謝します。

+3

あなたはそのコード全体を4行に置き換えて同じことをすることができます、あなたは知っています... http://ideone.com/tLCTl - .good()を使うことは、決して良い考えではありません。ストリーム状態を使用し、getlineはストリームを返します。 – etarion

+0

私は別の有線C++の事を追跡しようとしている瞬間を与えます... – Beasly

+0

は動作するようです。 しかし、なぜgood()メソッドを使用するのが良いのか分かりませんか? – Beasly

答えて

0

この質問を閉じるには:

同様etarionは、それがgood()方法の問題だと述べました。他のメカニズムを使っても問題ありません。 ご協力いただきありがとうございます!

関連する問題