1

我正在尝试用 fstream 填充两个数组。一个是字符串,一个是整数。字符串数组(名称)可以很好地填充,但 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++;
    }
}

我是在使用 stringstream 错误还是我的逻辑不正确,或者完全是其他什么?

4

1 回答 1

2

当你这样做时:

convert >> costArray[i];

您已到达字符串流上的 EOF,它设置了eofbit标志,导致未来的操作失败。重置标志以继续:

convert >> costArray[i];
convert.clear();
于 2012-10-28T05:18:57.570 回答