@newfag, выложите код хотя бы на pastebin.com или ideone.com. Чтобы дать точный ответ, было бы неплохо ваш код запустить и пройтись по нему отладчиком, но набирать вручную лень. Навскидку наиболее вероятная причина падения - вы длину строки определяете посредством sizeof. Это и с массивом char'ов не работает, не то что с классом string. Для определения дины строки, хранящейся в объекте класса string, используйте метод size(): lng = str.size();.
UPD
Вот ещё пара косяков:
- При чтении из потока нескольких переменных нужно отделять их операторами
>>, а не запятыми, как у вас: myfileinput>>x,n;.
- Вы используете неинициализированные переменные
n2, temp. Переменные нужно инициализировать перед использованием. Компилятор имеет право записать в неинициализированные переменные любой мусор.
- Было бы неплохо, если бы вы объяснили, чего хотите добиться вашим кодом. В данный момент особого смысла я в нём не вижу. В частности, ошибка
bad alloc у вас возникает из-за того, что вы бесконечно дописываете в ss какие-то строки. stringstream не очищается перед каждой записью, поэтому разростается до бесконечности и забивает собой всю память.