我正在尝试使用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++;
}
}
我使用的字符串流是错误的还是我的逻辑关闭,或完全不同的东西?
答案 0 :(得分:2)
执行此操作时:
convert >> costArray[i];
你已经在stringstream上达到了EOF,它设置了eofbit
标志,导致将来的操作失败。重置标志以继续:
convert >> costArray[i];
convert.clear();