Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180
#1

Возврат числа в виде строки - C++

11.06.2011, 02:31. Просмотров 408. Ответов 7
Метки нет (Все метки)

Всем доброй ночи.
Возникла проблема, никак не могу разобратся...
В общем есть класс с двумя интовыми полями, одно поле для целой части числа второе для дробной.
Нужно вернуть эти 2 поля в виде char * .У меня получился какойто бред, причем понятия не имею почему...
надеюсь на вашу помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char * CDecimal::GetString()
{
    char * tmp;
    tmp=new char [20];
    char t[10];
    char t1[10];
    itoa(integer,t,10);
    itoa(broken,t1,10);
    strcat(tmp,t);
    strcat(tmp,t1);
 
    
    return tmp;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 02:31     Возврат числа в виде строки
Посмотрите здесь:

Возврат строки из функции - C++
Здравствуйте. Пишу программу для работы с процессами, мне нужно, чтобы в функцию передавался PID, а возвращалось имя, но выводятся...

Возврат строки из функции - C++
//char perfomers; //char _perfomers; char GetPerfomers(){strcpy(_perfomers,perfomers);return *_perfomers;} Есть у меня такая...

Введение в рекурсию. Заполнить массив типа char в виде десятичного числа, принимаемого в виде аргумента - C++
Пытался написать функцию, которая заполняет массив типа char в виде десятичного числа, принимаемого в виде аргумента. Но почему то...

Возврат строки из функции по указателю - C++
Здравствуйте. Обьясните пожалуйсто, почему компилятор выдает предупреждение при выполнении следующего кода и почему строка возвращается не...

Вывести на экран все строки данного массива одну за другой в виде целой строки - C++
Дан двумерный массив , состоящий из букв. 5 строк и 7 столбцов. Вывести на экран все строки данного массива одну за другой в виде целой...

как записать числа n и k в виде составного числа nk - C++
как записать числа n и k в виде составного числа nk

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
11.06.2011, 10:59     Возврат числа в виде строки #2
Действительно код неочень. А выделенная память будет освобождаться за пределами функции? Не очень хорошо. Либо воспользуйтесь std::string из STL, либо передавайте функции указатель на выделенную память, в которую она (функция) будет записывать результат.
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180
12.06.2011, 06:32  [ТС]     Возврат числа в виде строки #3
А можешь подсказать как передать функции указатель на выделенную память?
Mиxaил
532 / 437 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
12.06.2011, 11:30     Возврат числа в виде строки #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    int n = 12345;
    
    //Число -> строка
    std::ostringstream ost;
    ost << n;
    std::string s_num = ost.str();
    std::cout << s_num << std::endl;
    n = 0;
    
    //Строка -> число
    std::istringstream ist(s_num);
    ist >> n;
    std::cout << n << std::endl;
     
    std::cin.get();
    return 0;
}
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
12.06.2011, 12:05     Возврат числа в виде строки #5
Ну вот как-то так.
C++
1
2
3
4
5
6
7
8
9
10
11
char* CDecimal::GetString(char *destination) {
  destination[0] = '\0'; // обнуление строки
  itoa(integer, destination, 10); // первое число
 
  char buffer[128]; // буффер для второго числа
  itoa(broken, buffer,10); // второе число в буффер
 
  strcat(destination, buffer);
 
  return destination;
}
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180
12.06.2011, 12:08  [ТС]     Возврат числа в виде строки #6
и память отчищать ненадо?
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
12.06.2011, 12:10     Возврат числа в виде строки #7
Внутри функции память не выделяется, следовательно и очищать нечего.
Снаружи функции если память под destination была выделена динамически (с помощью new), её обязательно надо освободить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2011, 12:22     Возврат числа в виде строки
Еще ссылки по теме:

Строки и файлы в виде функций - C++
Оформить каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров....

Вещественное число в виде строки - C++
Здравствуйте. Существует замечательная функция atof(). Есть ли обратная этой функции, т.е. которая вещ. число переводит в строку.

Запись числа в экспоненциальном виде - C++
Подскажите, пожалуйста, как записывать в код значения таких чисел, как например 6.67384 × 10-11

представление числа в виде суммы 3 и 5 - C++
Известно что любое целое положительное число, которое больше 7, можно представить суммой троек и пятерок (37=4*3 + 5*5). Произвольную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180
12.06.2011, 12:22  [ТС]     Возврат числа в виде строки #8
всё работает, огромное спасибо
Yandex
Объявления
12.06.2011, 12:22     Возврат числа в виде строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru