为什么数组不填充?

Why isn't array filling?

本文关键字:填充 数组 为什么      更新时间:2023-10-16

我试图用一个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++;
    }
}

我是在使用Stringstream错误还是完全关闭逻辑?

执行此操作时:

convert >> costArray[i];

您已经在Stringstream上达到了EOF,该弦线设置了eofbit标志,从而导致未来操作失败。重置标志以继续:

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