std::string & itoa
От: ivli  
Дата: 30.04.04 12:52
Оценка:
Доброго всем времени суток,

Возникла необходимость писать на СТЛ, после Майерса и Josuttis от AW
Стало немного легче но не могли бы уважаемые доны ответить на банальный вопрос,
Как вывести в std::string число без использования itoa, sprintf etc
что бы не использовать временных строк.
До этого в основном писал под Symbian там на всю катушку AppendNum итд а тут что то не найти.

Спасибо.
Игорь.
Re: std::string & itoa
От: _AK_ Россия  
Дата: 30.04.04 12:57
Оценка:
Здравствуйте, ivli, Вы писали:

I>Доброго всем времени суток,


I>Возникла необходимость писать на СТЛ, после Майерса и Josuttis от AW

I>Стало немного легче но не могли бы уважаемые доны ответить на банальный вопрос,
I>Как вывести в std::string число без использования itoa, sprintf etc
I>что бы не использовать временных строк.
I>До этого в основном писал под Symbian там на всю катушку AppendNum итд а тут что то не найти.

I>Спасибо.

I>Игорь.

я делаю так:

int number = 777;
std::string result = boost::lexical_cast<int>(number);
Re: std::string & itoa
От: unrealalex Россия  
Дата: 30.04.04 13:07
Оценка:
Здравствуйте, ivli, Вы писали:

I>Доброго всем времени суток,


I>Возникла необходимость писать на СТЛ, после Майерса и Josuttis от AW

I>Стало немного легче но не могли бы уважаемые доны ответить на банальный вопрос,
I>Как вывести в std::string число без использования itoa, sprintf etc
I>что бы не использовать временных строк.
I>До этого в основном писал под Symbian там на всю катушку AppendNum итд а тут что то не найти.

I>Спасибо.

I>Игорь.
1. std::stringstream

long        i = 10;
std::string str;

std::stringstream stream;
stream << i;
stream >> str;

2. boost::lexical_cast
long        i = 10;
std::string str;

str = boost::lexical_cast<std::string>(i);

3. boost::format
const std::string templ = "%d";

long        i = 10;
std::string str;

boost::format formatter(templ);
formatter % i;

str = formatter.str();


*Обработка ошибок и "ловля" исключений пропущена для наглядности.
**boost::lexical_cast реализован примерно как пример 1.
***в boost::lexical_cast есть небольшая ошибка: таргет, будет передаваться по значению.
В последнем исправлено, но он еще, вроде как, не вышел.
i = boost::lexical_cast<long>(str);

str будет передаваться по значению
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Re[2]: std::string & itoa
От: unrealalex Россия  
Дата: 30.04.04 13:08
Оценка:
Здравствуйте, _AK_, Вы писали:

int number = 777;
std::string result = boost::lexical_cast<std::string>(number);
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Re: std::string & itoa
От: -Cheese-  
Дата: 30.04.04 14:25
Оценка: -2
Здравствуйте, ivli, Вы писали:

I>Доброго всем времени суток,


I>Возникла необходимость писать на СТЛ, после Майерса и Josuttis от AW

I>Стало немного легче но не могли бы уважаемые доны ответить на банальный вопрос,
I>Как вывести в std::string число без использования itoa, sprintf etc
I>что бы не использовать временных строк.
I>До этого в основном писал под Symbian там на всю катушку AppendNum итд а тут что то не найти.

I>Спасибо.

I>Игорь.

sprintf(char* buf,"decimal:%d, string:%s",10,"uor text");
и т.д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.