c ++在将数组读入结构时遇到麻烦

时间:2012-02-27 20:40:59

标签: c++ multidimensional-array

我正在读取数据到结构数组。数据由可能的空行分隔,我必须忽略。我的代码无法工作,我想知道为什么

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

任何想法?它可能是编译器吗?

1 个答案:

答案 0 :(得分:5)

您似乎正在尝试检查空字符串,但无意中尝​​试在empty()上调用Location

你的意思是

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

修改 如果您希望代码示例按原样运行,并且您可以修改struct Loaction,则可以执行以下操作。

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