1

2 つの配列を fstream で埋めようとしています。1 つは文字列で、もう 1 つは 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 を間違って使用していますか、それともロジックがオフになっていますか、それともまったく別のものですか?

4

1 に答える 1

2

これを行う場合:

convert >> costArray[i];

文字列ストリームで EOF に達したため、eofbitフラグが設定され、今後の操作が失敗します。続行するには、フラグをリセットします。

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