2012-02-27 19 views
0

私は構造体配列にデータを読み込んでいます。データは無視しなければならない空白行で区切られています。私のコードはうまく動作しません。なぜC++は構造体への配列の読み込みに問題があります

struct Location 
{ 
string state; 
string city; 
int zipcode; 
} 

となっています。

while (!fin.eof() && size < 50) 
{ 
getline (fin, location[size].state); 
getline (fin, location[size].city); 
fin >> location[size].zipcode; 

if (location[size].empty()) //to ignore blank lines but its not working? 
continue; 
size++; 
    } 

それはコンパイラだろうか?

+4

いいえ、決してコンパイラではありません。 (少なくともあなたがSOを求めている限りは) –

+0

あなたはhte入力ファイルの内容とあなたが得るエラーを追加できますか? – Kashyap

+0

本当のコードですか? 'Location :: empty()'はどこにも定義されていません。 – hmjd

答えて

5

空の文字列をチェックしようとしていますが、意図せずをLocationにコールしようとしているようです。で、あなたは次のことを行うことができstruct Loactionを変更することができますよう、あなたのコード例が機能するためにあなたが希望の場合 :

はあなたが編集

if (location[size].state.empty() && location[size].city.empty()) 
    continue; 

を意味しませんでした。

struct Location 
{ 
    std::string state; 
    std::string city; 
    int zipcode; //who cares about zip+4 

    Location():zipcode(0){}; 
    bool empty() 
    { 
     return state.empty() && city.empty() && !zipcode; 
    } 
}; 
+0

ああこれは何を試みているのですか?私に "空のメソッドを解決できませんでした"と伝えています – gamergirl22

+0

これは、定義していない場所で空を呼び出そうとしているからです。場所の空のメソッドが好きなら、私の編集を見てください。 – Joe

関連する問題