Как перенести int, double, char в char const*?

219
22 апреля 2018, 23:05

Как перенести int, double, char в char const* ?

Вот есть у меня клас телефон, у него есть свои характеристики. Мне говорят: "Сделай функцию, что будете возвращать все характеристики телефона в одной строке (char*).

Внимание, вопрос: "Как?".

Answer 1

Что-то типа этого не подходит?

struct Phone
{
    char model[40];
    double price;
    int buttons;
};
int main(int argc, const char * argv[])
{
    Phone p;
    strcpy(p.model,"Nokia");
    p.price = 25.67;
    p.buttons = 20;
    char a[100];
    sprintf(a,"Phone %s with %d buttons for %.02lf dollars",
            p.model, p.buttons, p.price);
    cout << a << endl;
}
Answer 2

Добавлю вариант к варианту, который предложил @Harry
Используя класс ostringstream, можно сделать так

#include <sstream>
struct Phone
{
    char model[40];
    double price;
    int buttons;
};
int main(int argc, const char * argv[])
{
    Phone p;
    strcpy_s(p.model, "Nokia");
    p.price = 25.67;
    p.buttons = 20;
    std::ostringstream stringStream;
    stringStream << p.model << p.price << p.buttons;
    std::string s = stringStream.str();
    const char* ps = s.c_str();     
    std::cout << ps << std::endl;
}

Плюс этого подхода в том что нет необходимости в предварительном расчете длины строки.

READ ALSO
Использование std::wstringstream

Использование std::wstringstream

Мне нужно записать в const wchar_t* items следущее

194
Где ошибка в операторе for?

Где ошибка в операторе for?

Здравствуйте, компилятор (Visual Studio) жалуется на цикл for (а именно как я его объявил, с несколькими переменными)В чём ошибка? Почитал на сайтах,...

203
Критические секции WinAPI в цикле: проблемы освобождения секции

Критические секции WinAPI в цикле: проблемы освобождения секции

Задача следующая: создать n потоков и в каждом из них выводить уникальную строку посимвольноОперация вывода должна быть атомарной

174
Зависящие от времени действия в loopback

Зависящие от времени действия в loopback

Пытаюсь разобраться в loopback-4Создание Rest-API я освоил, теперь встала задача выполнять на сервере различные действия каждые несколько секунд...

147