Как перенести int, double, char в char const* ?
Вот есть у меня клас телефон, у него есть свои характеристики. Мне говорят: "Сделай функцию, что будете возвращать все характеристики телефона в одной строке (char*).
Внимание, вопрос: "Как?".
Что-то типа этого не подходит?
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;
}
Добавлю вариант к варианту, который предложил @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;
}
Плюс этого подхода в том что нет необходимости в предварительном расчете длины строки.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, компилятор (Visual Studio) жалуется на цикл for (а именно как я его объявил, с несколькими переменными)В чём ошибка? Почитал на сайтах,...
Задача следующая: создать n потоков и в каждом из них выводить уникальную строку посимвольноОперация вывода должна быть атомарной
Пытаюсь разобраться в loopback-4Создание Rest-API я освоил, теперь встала задача выполнять на сервере различные действия каждые несколько секунд...