когда вы говорите
cin >> my_string;
вы принимаете форматированный ввод .std::cin
удаляет все пробелы в этой строке и читает до и выдает только одно слово.
вместо этого попробуйте
std::string my_string;
std::getline(std::cin, my_string);
, чтобы получить одну строку, или
#include <iterator>
// ...
std::string my_string((std::istreambuf_iterator<char>(std::cin)),
std::istreambuf_iterator<char>());
чтобы получить все до метки конца файла в строке.