std::getline()
читает целую строку ввода, например, читает "0 1 0"
(первая строка).
Затем (несколько удивительно) поведение std::stoi
вступает в игру:
Отбрасывает любые пробельные символы (как определено вызовом isspace ()) до тех пор, пока не будет найден первый непробельный символ, а затем принимает столько символов, сколько возможно, чтобы сформировать действительный base-n (где n = base) представление целых чисел и преобразование их в целочисленное значение. Допустимое целочисленное значение состоит из следующих частей:
Это означает, что stoi
анализирует только первое число 0
и возвращает его. Таким образом, вы анализируете только первый номер каждой строки.
Вам нужно прочитать файл поэлементно, а не по строкам:
ifstream newFile(fileName);
int val;
int x = 0;
while(newFile >> val){
pointer[x] = val;
x++;
}
newFile.close();
Как несвязанное дополнение: подумайте о том, что происходит, когда файл содержит более 25 записей , Попробуйте использовать std::vector
вместо простых массивов.