Цикл до eof()
почти наверняка не то, что вы хотите сделать. См. Почему iostream :: eof внутри условия цикла считается неправильным? .
istream::get()
извлекает символ из потока и возвращает его значение (приведенное к int
), но вы помещаете его в массив std::string
. Это кажется странным.
Вы также жестко запрограммировали массив из 100 элементов, но не проверили, чтобы убедиться, что вы не перегружаете буфер.
Вместо этого вы должны предпочесть что-то вроде этого:
std::ifstream inStream("Sample Credit Card numbers.txt");
if (inStream)
{
std::string number;
std::vector<std::string> next;
while (std::getline(inStream, number))
{
next.push_back(number);
}
}
else
{
// Failed to open file. Report error.
}