Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование double строку типа char[] 
:(
    Опции темы
Hawaii
Дата 15.7.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Как преобразовать число double в строку char[] ?
PM MAIL   Вверх
Dov
Дата 15.7.2007, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



sprintf, gcvt...


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Doc_d0s
Дата 15.7.2007, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: 2
Всего: 3



ftoa();
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
archimed7592
Дата 15.7.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



std::istringstream

Добавлено @ 22:02
boost::lexical_cast

Это сообщение отредактировал(а) archimed7592 - 15.7.2007, 22:03


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Hawaii
Дата 15.7.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Я не могу понять, как эти функции использовать. А какой заголовочный файл подключать?

Вот пример. В нем есть метод formating(), который разбирает строку типа $1,234,567,890,123.99 ...
Он удаляет из этой строки запятые и знак доллара. Затем переводит строку из типа char[] в тип double.
Потом умножает результат на 2 (это для подтверждения того, что строка действительно стала double).

Помогите пожалуйста написать метод idtoms(), где double будет переводиться в char[] (БЕЗ ЗНАКА ДОЛЛАРА И ЗАПЯТЫХ).

Вот код:

Код


#include<iostream>
#include<stdlib.h>
#include<cstring>


using namespace std;
int j;
int f;
int u = 0;
int p = 0;
char D;
class money
  {
  private:
    char monV[80];
    char monX[80];
  public:
      
   void formating(char M[])
     { 
      for(j=0; j<strlen(M);)
         {
           while (M[j] == '$')
            {
            j++;
            }
          monV[u] = M[j];  
           u++;
           j++;
         }
      monV[u] = '\0';
      for(f=0; f<strlen(monV);)
         {
           while (monV[f] == ',')
            {
            f++;
            }
          monX[p] = monV[f];  
           p++;
           f++;
         }
      monX[p] = '\0';
   
       double n = atof(monX);  
      cout << n*2;
     }   
   void idtoms()
     {
       //??????????
       //??????????
       //??????????      
     }  

  };
int main()
{
money m1;
char money[100];
cout << "ENTER SUM $1,234,567,890,123.99 (THIS FORMAT)"<< endl;
cin >> money;
m1.formating(money);
cout << endl;
system("PAUSE");
return 0;
}



 smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile 

Это сообщение отредактировал(а) Hawaii - 16.7.2007, 00:32
PM MAIL   Вверх
JackYF
Дата 16.7.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Hawaii @  15.7.2007,  23:40 Найти цитируемый пост)
Помогите пожалуйста написать метод idtoms(), где double будет переводиться в char[] (БЕЗ ЗНАКА ДОЛЛАРА И ЗАПЯТЫХ).

тебе выше уже привели 5(!) методов. Как пользоваться - подробно описано в справке/манах/гугле.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Hawaii
Дата 16.7.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Я типа только начинающий, и куда эти 5(!) методов пихать я тоже не очень понимаю. Так что кому не впадлу, впишите в код что надо.

Это сообщение отредактировал(а) Hawaii - 16.7.2007, 00:48
PM MAIL   Вверх
JackYF
Дата 16.7.2007, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Hawaii @  16.7.2007,  00:39 Найти цитируемый пост)
Так что кому не впадлу, впишите в код что надо.


Ну, например, так:
Код

#include <stdio.h>
#include <stdlib.h>
int main()
{
    double d = 123.45;
    char buf[20];
    sprintf(buf, "%f", d);
    printf("%s", buf);
    return 0;
}

Здесь в 3-й строчке строковое представление переменной d пишется в переменную buf.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Hawaii
Дата 16.7.2007, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Спасибо. Все работает. Только я ещё не знаю что такое "%f" и "%s"  smile  smile  smile 
PM MAIL   Вверх
archimed7592
Дата 16.7.2007, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Hawaii @  16.7.2007,  01:28 Найти цитируемый пост)
Только я ещё не знаю что такое "%f" и "%s"

Не заморачивайся... Это наследие языка C smile.
Код

#include <string>
#include <ostream>
#include <sstream>
#include <iostream>

int main()
{
    double d = 123.45;
    std::ostringstream oss;
    oss << d; // работать с ним можно точно так же, как со всеми любимым cout
    // только вывод будет делать не на экран, а во внутренний буфер.
    std::string s = oss.str(); // содержимое буффера можно получить вот так.
    std::cout << s << std::endl;

    return 0;    
}



Добавлено через 5 минут и 12 секунд
ps. Если нужно получить именно char [], то это можно сделать так:
Код

#include <cstring>
//...
std::string s = oss.str();
//...
char charbuf[100];
strncpy(charbuf, s.c_str(), 99);
charbuf[99] = '\0';



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
bsa
Дата 16.7.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(Hawaii @ 16.7.2007,  01:28)
Спасибо. Все работает. Только я ещё не знаю что такое "%f" и "%s"  smile  smile  smile

http://linux.die.net/man/3/sprintf

И вообще, google хорошо подходит для поиска документации. В частности, на стандартные функции достаточно дать запрос вида: man <что-то>. Например: man sprintf или man ftoa. Учись пользоваться интернетом.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.