Моему приложению нужно преобразовать двойные значения в char * для записи в канал, который принимает только символы. Обычные способы сделать это - использовать функцию sprintf() или использовать ostringstream из файла заголовка iomanip.h.
Оказывается, обе они имеют очень плохую производительность. И мое приложение должно делать это преобразование настолько часто, что оно становится основным узким местом.
Есть ли какая-нибудь другая функция, которую я мог бы использовать? Какую логику я могу использовать для написания эффективной функции преобразования? Единственное, что мне удалось найти до сих пор, - это получить каждую отдельную цифру, используя операции разделения и мод, и добавить эти цифры к char *, чтобы получить все двойное значение. Однако это не похоже на хороший подход и, скорее всего, будет иметь плохую производительность.
Заранее благодарим за ваши мысли.
EDIT: существует некоторая путаница в отношении того, как будет использоваться char *. char * будет аргументом функции fwrite, которая записывает в трубу.