Based on the code and without seeing the exact input it is impossible to tell but I'd bet that reading actually fails as some point. Since you don't check your inputs as you always should, your program doesn't notice it. As a side node, you read the name including the comma which is probably also not desirable. Here is how I would write the loop:
for(i = 0; i != arrSize
&& inFile >> number
&& std::getline(inFile, lastName, ',')
&& std::getline(inFile, firstName)
&& inFile >> previous
&& inFile >> current
&& inFile >> therms; ++i) {
// set the various values
}
Obviously, the various variable would need to be declared appropriately. Realistically, I would probably consider writing an input operator. If you find that you can't read anything you'll need to find out where the input goes wrong, e.g., by outputting that you successfully read the value after each subexpression, e.g.:
for(i = 0; i != arrSize
&& inFile >> number && std::cout << "number=" << number << '\n'
&& std::getline(inFile, lastName, ',') && std::cout << "name='" << lastName << "'\n"
&& std::getline(inFile, firstName) && std::cout "first-name='" << firstName << '\n'
&& inFile >> previous && std::cout << "previous=" << previous << '\n'
&& inFile >> current && std::cout << "current=" << current << '\n'
&& inFile >> therms && std::cout << "therms=" << therms << '\n'; ++i) {
// set the various values
}