Почему считывается с файла только 1 слово, а не весь текст?
Не раскрыта тема о классе House. Не видя его трудно что-то сказать.

Но могу предположить, что в House, например, поле address является std::stringом.
А std::string хранит свою строку в динамической памяти и sizeof(std::string) в общем случае совсем не равен размеру хранящейся в нем строки. Записывая в файл sizeof(std::string) байт вы записываете грубо говоря только адрес памяти где лежит строка и размер строки, но не саму строку.
Вам нужно делать нормальную сериализацию/десериализацию полей объекта House.
Если просто через >> читать std::string из std::cin, то он будет читать одно слово.
Чтобы прочитать всю стороку используйте cin.getline.