У меня есть файл, который содержит оценку для каждого человека. Количество баллов отличается от строки к строке. Я пытаюсь сохранить числа в массив для каждого человека, выполняя while(file>>array[i])
, не должен ли while(file>>array[i])
прерываться, когда он пытается читать словами, так как я объявил массив как целое число? Как правильно это сделать?
John Carter: 34 51 22 15 45
Ron Wilder: 32 33 23
John Carter: 1 2 3 4
Ron Wilder: 24 25 1 2 3 4
вот лог c. Я буду проверять границы, когда эта программа работает.
void storeNum(ifstream & file)
{
int i =0, j= 0;
int JohnArray[10] = {0}; //store numbers for John
int RonArray[10] = {0}; //Stores numbers for Ron
string stringVariable;
while (getline(file, stringVariable,':')) //file is a ifstream variable
{
if (stringVariable == "John Carter")
{
while (file >> JohnArray[i]) //This should break when it encounter non integer
{
i++;
}
if (file.fail())
{
file.clear(); //clear fail bit
}
}
else if (stringVariable == "Ron Wilder")
{
while (file >> RonArray[j]) //store numbers for Ron
{
j++;
}
if (file.fail())
{
file.clear(); //clear failbit
}
}
else
{
continue;
}
}
}