为什么阵列没有填充?

时间:2012-10-28 05:08:41

标签: c++ arrays

我正在尝试使用fstream填充两个数组。一个是字符串,一个是int。字符串数组(名称)填充正常,但char数组仅填充第一个值。

void fillInventory(ifstream &fin, int costArray[],string itemArray[])
{
    string name = "junk";
    string cost;
    int i = 0;
    int max = 0;
    stringstream convert;

    while(name != "none")
    {
        getline(fin, name);
        getline(fin, cost);
        if(name != "none")
        {
            itemArray[i] = name;
            convert<<cost;
            convert >> costArray[i];
        }
        i++;
    }
}

我使用的字符串流是错误的还是我的逻辑关闭,或完全不同的东西?

1 个答案:

答案 0 :(得分:2)

执行此操作时:

convert >> costArray[i];

你已经在stringstream上达到了EOF,它设置了eofbit标志,导致将来的操作失败。重置标志以继续:

convert >> costArray[i];
convert.clear();