Помогите пожалуйста. Не знаю как под UNIX в С++ это сделать. В досе были функции itoa, fcvt
>Помогите пожалуйста. Не знаю как под UNIX в С++ это сделать. В
>досе были функции itoa, fcvtДело вкуса, но лично мой любимый вариант - sscanf().
Бывают еще любители std::stringstream'а :)
>>Помогите пожалуйста. Не знаю как под UNIX в С++ это сделать. В
>>досе были функции itoa, fcvt
>
>Дело вкуса, но лично мой любимый вариант - sscanf().Имел в виду sprintf(), да? =)
>Бывают еще любители std::stringstream'а :)
да пора юзать boost (lexical_cast) и modern с++, но аккуратненько =)
>Имел в виду sprintf(), да? =)Угу.
>да пора юзать boost (lexical_cast) и modern с++, но аккуратненько =)
Да ну их, писанины больше. Разве что на выходе требуется std::string.
>Помогите пожалуйста. Не знаю как под UNIX в С++ это сделать. В
>досе были функции itoa, fcvtman strtol
...
NAME
strtol, strtoll, strtoq - convert a string to a long integer
Да, кстати itoa -- нестандартная функция:
The itoa function is a widespread non-standard extension to the standard C programming language. It cannot be portably used, as it is not defined in any of the C language standards; -- http://en.wikipedia.org/wiki/ItoaЗато:
man strtol
...
CONFORMING TO
strtol() conforms to SVr4, 4.3BSD, C99 and POSIX.1-2001, and strtoll() to C99 and POSIX.1-2001.
если нет условия "использовать стандарты", то можно и boost::lexical_cast<string>()
>если нет условия "использовать стандарты", то можно и boost::lexical_cast<string>()пример на С:
char str[10];
int a = 512;sprintf(str, "%9d", a);
на С++ способов намного больше, какой использовать зависит от задачи...
>если нет условия "использовать стандарты", то можно и boost::lexical_cast<string>()Э-э, надо использовать стандарты всегда ;)
Нет условия - поставь себе сам такое условие - меньше проблем в будущем.boost кроссплатформенный, частично войдет в следующий стандарт, войдет ли lexical_cast не помню (стыдно однако). Далее автору топика: на rsdn.ru сделай поиск по "lexical_cast" найдешь кучу тем с обсуждением вопроса преобразования строка-число, число-строка, что лучше, что хуже и т.п. Там же обсуждение почему lexical_cast медленный, это так, но на то есть причины, но его прелесть в том что он будет работать и с wstring в том числе и с учетом локализации.
Всем большое спасибо. sprintf самое то. Я в си под unix еще мало знаю. Руководствуюсь обычными знаниями c++. Когда-то, чтобы не разбираться с этой проблемой записывал числа в текстовый файл, а потом читал :)