| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Что является в С++ аналогом функции DoubleToStr ? |
| Автор: Wowa 16.11.2004, 21:23 |
| Что является в С++ аналогом функции DoubleToStr ? Нужно строку со значением Double присоединить к Стрингу |
| Автор: dargaard 16.11.2004, 21:29 |
| int main() { double f=2.3; char c[20]; sprintf(c,"%f",f); printf("%s\n",c); } или sprintf(c,"%g",f); чтоб убрать ненужные нули. |
| Автор: Wowa 16.11.2004, 21:35 | ||
прокатит ли?
Если нет, то как мне привести код к такой форме? |
| Автор: dargaard 16.11.2004, 21:41 | ||
|
| Автор: shedon 16.11.2004, 21:42 | ||
| Admin А что ты хоочешь сделать ?
|
| Автор: Wowa 16.11.2004, 22:36 | ||||
| shedon Зачем в твоем варианте?
Добавлено @ 22:38 Ладно, чтобы было понятнее, вот полный текст функции:
Мне надо, чтобы так все и осталось в одну строку, хотя это не является в принципе обязательным. Но выполнять присваивание какой-то переменной значения - запрещено. Т.к. это не С++, а FC++ (функциональное программирование). |
| Автор: shedon 16.11.2004, 22:38 |
| просто вывод результат для наглядности, можешь убрать если не нравится |
| Автор: Wowa 16.11.2004, 22:56 |
| еще мысли ? |
| Автор: NiJazz 16.11.2004, 23:00 | ||||||
Если говорить о программировании под Win32 (Unicode), то советую пользоваться таким способом форматирования строки:
Только затрудняюсь ответить, как работать с double. Может, кто-нибудь знает? Добавлено @ 23:06 А чтобы сцепить две строки, используй
lpStr2 присоединяется к lpStr1 Хотя можно и так:
|
| Автор: sergejzr 16.11.2004, 23:11 | ||||
| Вот это работать будет может красивей получится написать
Добавлено @ 23:18 Вот, extras вдогонку Наверняка пригодится
Тогда можно будет с твоей исходной функцией работать не меняя её |
| Автор: sergejzr 16.11.2004, 23:25 |
| Правда с этими буквами %d и %i я не уверен. Может быть %f и %l. Эти спецификации типов в функциях я уже подзабыл |
| Автор: Wowa 17.11.2004, 01:30 |
| sergej.z IF, ELSE, WHILE, FOR и прямое объявление переменных нельзя использовать в FC++ |
| Автор: sergejzr 17.11.2004, 01:38 |
| Не знаю FC++... А что, значит функции DoubleToStr и IntToStr, которые я написал тоже не пойдут? потому что там массив обьявляется? |
| Автор: dargaard 17.11.2004, 01:42 | ||
| а ftoa есть в фс++? если да то
|
| Автор: sergejzr 17.11.2004, 01:48 | ||
Только тогда наверное
|
| Автор: Wowa 17.11.2004, 01:49 | ||||
Думаю подойдут Добавлено @ 01:50
не знаю, но наверняка. А можно краткое описание ftoa ? |
| Автор: dargaard 17.11.2004, 01:58 |
| Описания у меня нету. Просто думал что может есть что нить по аналогии с itoa (перевод инта в строку). char * itoa ( int value, char * buffer, int radix ); |
| Автор: Wowa 17.11.2004, 02:00 | ||||
Это обычный компиллер g++ Добавлено @ 02:03 Еще так ругается:
|
| Автор: sergejzr 17.11.2004, 02:03 | ||
Ну тогда юзай смело А что за зверь такой FC++? |
| Автор: Wowa 17.11.2004, 02:05 | ||
Если бы я знал Я так понял, отличается только отсутствием некоторых операторов. |
| Автор: dargaard 17.11.2004, 02:36 | ||
| вот попробовал свою фтоа написать используя условия фс++. Осталось только заменить if-ы на ?: оператор Долго не тестил но вроде работает. (надеюсь.) но енто - изврат полнейший
|
| Автор: Wowa 17.11.2004, 02:53 | ||
однозначно, блин.. А что же такое? Функцию DoubleToString мы уже написали, но неужели в С++ нет простой функции присоединения строки? В PHP это делается так: a.b Точно служет символом присоединения. В Делфи, насколько я помню, есть функция DoubleToString и строки можно через + пристыковывать одна к другой. |
| Автор: dargaard 17.11.2004, 05:51 | ||
Если имеем char * то для стыковки используем strcat(строка,строка_которую_пресоединить). Если строка типа string то работает + |
| Автор: NiJazz 17.11.2004, 10:11 |
| Admin Что за FC++? |
| Автор: sergejzr 17.11.2004, 12:11 | ||
Хочешь, можешь оператор переложить Си++ ведь сам прогер под себя настраивает. В начале считай что Си перед тобой. А там строка ведь не существует как тип.. Только конечно с операторами поостророжней надо |
| Автор: Wowa 17.11.2004, 12:26 | ||
Как избавится от этих ошибок?
|
| Автор: sergejzr 17.11.2004, 12:33 | ||||
| Довольно странная ошибка. Он чего функцию за конструктор считает.... На всякий случай: если функция задекларирована со значениями по умолчанию,
то в имплементации писать int=0 второй раз нельзя. Т.е пишешь просто
Где взять комплиер на FC++? |
| Автор: Wowa 17.11.2004, 12:39 | ||||
Такого нет, насколько я знаю. Я использую просто обычный g++ 3.2.2. версия. Добавлено @ 12:39
ты прав |
| Автор: Wowa 17.11.2004, 13:31 | ||||||||
Да, да, Действительно правильнее так:
иначе ругается:
В общем, можно сказать УРА и всем спасибо! Добавлено @ 13:33 а функция такой вид теперь имеет: Собственно, почти как и было, только функцию DoubleToStr мы сами дописали.
|