Всем привет. Помогите с кодом пожалуйста. Мне нужно сделать из int string. Я уже все способы перепробовал, везде пишет, что не найден оператор и т.п. Я новичок, поэтому туплю. Вроде бы stringstream сработал, но при компиляции вылезает ошибка bad alloc, это связано с переполнением памяти. Вот код: pastebin.com/kZC44q5g
Спасибо
@newfag, выложите код хотя бы на pastebin.com или ideone.com. Чтобы дать точный ответ, было бы неплохо ваш код запустить и пройтись по нему отладчиком, но набирать вручную лень. Навскидку наиболее вероятная причина падения - вы длину строки определяете посредством sizeof
. Это и с массивом char
'ов не работает, не то что с классом string
. Для определения дины строки, хранящейся в объекте класса string
, используйте метод size()
: lng = str.size();
.
UPD
Вот ещё пара косяков:
>>
, а не запятыми, как у вас: myfileinput>>x,n;
.n2
, temp
. Переменные нужно инициализировать перед использованием. Компилятор имеет право записать в неинициализированные переменные любой мусор.bad alloc
у вас возникает из-за того, что вы бесконечно дописываете в ss
какие-то строки. stringstream
не очищается перед каждой записью, поэтому разростается до бесконечности и забивает собой всю память.Поскольку до -std=c++11
стандартной функции to_string()
не было, то видимо более надежно писать код:
#include <stdio.h> // для sprintf
...
char tmpbuf[21]; // максимальный размер long long целого со знаком и завершающим nil
sprintf (buf, "%d", i); // в данном случае i -- int (достаточно было бы буфера размером 12)
string str(tmpbuf);
"Мне нужно сделать из int string." -- str = to_string(i)
. Чтобы попробовать на своей машине, загрузи код по ссылке и выполни команду: g++ -std=c++11 ideone_XMjben.cpp && ./a.out
. Если слова "выполни команду", или сама команда не ясна -- задай отдельный вопрос.
Я вот такой способ придумал.
#include <iostream>
#include <string>
using namespace std;
int main(){
char buf[40];
int i = 123;
itoa(i, buf, 10);
string s;
s += buf;
cout << s << endl;
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
![alt text][1]На вход подается что-то типа: (12 32(32 12))Мне считать скобки перед числом, увидев число, выполнить: res=a[i]*(0
Как обратиться к элементу вектора в ассемблерной вставке c++ (vs2012)?
Пишу программуКод, та часть на которой ломается:
Название, может, криво написал, лучше опишу задание