Problemem jest to, iż nie czyścisz strumienia wejścia, co przy korzystaniu z innych opcji niż std::cin czy fwrite, jest konieczne. Wystarczy, że przed std::getline() wstawisz std::cin.ignore()
std::cout << std::endl << std::endl << "Komunikat: ";
std::cin.ignore();
std::getline(std::cin, komunikat);