Чтение строк из файла и их запись в динамическую памть [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. Если размер выделяемой памяти задать явно, то всё работает.