То, что я пытаюсь сделать, читается числами из текстового файла (в настоящее время называемого «input»). Я создаю два массива: один для числа int и один для числа с плавающей точкой. Максимальное количество элементов в массиве устанавливается равным 50, однако минимум равен 1. Идентификатор программы для остановки чтения чисел - это любое отрицательное число в значении int.Чтение в Numbers, но Stop at Negative C++
Я не уверен, почему, но когда я читаю назад, мой массив печатает цифры, пропускает окончательное отрицательное число, а затем выводит значения тарабарщины для оставшихся слотов (до 50).
Любые советы будут оценены.
void Read(ifstream &input, int studentID[], float score[])
{
int curID;
float curScore;
for (int i = 0; i < 50; i++)
{
input >> curID >> curScore;
if (curID < 0)
{
return;
}
else
{
studentID[i] = curID;
score[i] = curScore;
}
}
}
Я предполагаю, что вы попытались напечатать массив от 1 до 50 без проверки предела максимального индекса элемента чтения. Таким образом, вы должны поддерживать общее количество элементов, считанных и распечатанных в соответствии с этим общим количеством. –
Вы правы. Я сам это осознал. Я распечатывал 50 значений без проверки длины моего массива. Не могли бы вы отправить ответ в ответ, чтобы я мог дать вам кредит? –