![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Поскажите как преобразовать число из типа double в строку char*.
Опытные люди сказали, что надо юзать ostrstream, но каким образом ??? Может у кого есть какие идеи ??? -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| Alastis |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 4 Всего: 10 |
Можно так:
или так:
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
||||
|
|||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Прекрасно, всё работает. Спасибо огромное.
-------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 4 Всего: 10 |
еще вот попробуй, если нужно через ostrstream:
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
| Fire-Plug |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
Ф-ция ostrstream::str() возвращает указатель на С-строку без 0-терминатора. Что нужно сделать в твоем решении - использовать streamsize ostrstream::pcount( ) в конструкторе string:
--------------------
Объясни другому - поймешь сам (Народная примета) |
||||||
|
|||||||
| yaja |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 30.3.2005 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
А есть способ сделать ето преобразование гораздо быстрее
char *_gcvt( double value, int digits, char *buffer ); |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
С каких пор? Он возвращает std::string, чтобы получить C-строку, надо stream.str().c_str() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Зато это не переносимо -------------------- Не смей читать мою подпись!!! |
|||
|
||||
| yaja |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 30.3.2005 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Не знал |
|||
|
||||
| Fire-Plug |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
Действительно, а с каких пор? ИМХО, когда strstream и производные от него ostrstream & istrstream были разработаны и введены в С++ в качестве потоковых классов. Наверное, это было то самое время, когда вместо заголовочного файла <strstream> приходилось использовать <strstream.h>, а о том, что будет такой std::string не знал даже А.Степанов. 1) Объявление метода ostrstream::str():
Вопрос: типы char * и std::string тождественны? С каких пор? 2) Семантика возвращаемого значения метода ostrstream::str():
Кто-нибудь пробовал использовать что-либо вроде:
Не пробовали? Ну и правильно. Дело может окончиться исключ. ситуацией с кодом EXCEPTION_ACCESS_VIOLATION. ЗЫ: Если бы контролируемая последовательность в классе strstream имела 0-терминатор, накой тогда был бы нужен метод pcount(). --------------------
Объясни другому - поймешь сам (Народная примета) |
||||||||||
|
|||||||||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Хех, прошу прощения, не заметил разницы между strstream и stringstream. Но тогда встречный вопрос: зачем пользоваться deprecated классами strstream и файлом <strstream.h> вместо стандартного <sstream> и stringstream? -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Fire-Plug |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
Просто пример был, где предлагалось сконструировать std::string с помощью только strstream::str(). Ну, на ошибку надо было указать. А так, конечно, deprecated классами пользоваться незачем: хлопотно да и error-prone. --------------------
Объясни другому - поймешь сам (Народная примета) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |