Чтение строк из файла и их запись в динамическую памть [c++]

Суть задания: прочитать строки из файла и разместить их в стиле 'С' в динамической памяти. Строка в файле описывается двумя строчками, первая - кол-во символов, вторая - сама строка. Проблема: имею бесконечный цикл и на выходе непонятные симовлы. Что я делаю не так?

Пример входного файла:

12
qwertyqwеrty
24
qwertyqwertyqwertyqwеrty

Cам код:

int main() {
    std::ifstream in("file.txt");

    while (!in.eof())
    {
        int x;
        in >> x;
        char *p2string1 = new char[x];
        in.getline(p2string1, x);
        std::cout << p2string1 << "\n";
        delete[] p2string1;
    }
    in.close();
    return 0;
}

Выход:

↔═
 ↔═
 ↔═
 ↔═
 ↔═
...

P.S. Если размер выделяемой памяти задать явно, то всё работает.


Ответы (0 шт):