Konwersja double na char * w C ++ z wysoką wydajnością

Moja aplikacja musi przekonwertować podwójne wartości na char *, aby napisać do potoku, który akceptuje tylko znaki. Zwykle można to zrobić za pomocąsprintf () funkcja lub użycieostringstream z pliku nagłówkowego iomanip.h.

Okazuje się, że oba mają naprawdę złą wydajność. A moja aplikacja musi wykonać taką konwersję tak często, że stanie się głównym wąskim gardłem.

Czy jest jakaś inna funkcja, której mógłbym użyć? Jakiej logiki mogę użyć do napisania wydajnej funkcji konwersji? Jedyne, co do tej pory udało mi się wymyślić, to uzyskać każdą pojedynczą cyfrę za pomocą operacji dzielenia i modowania, a następnie dodawać te cyfry do znaku *, aby uzyskać całą podwójną wartość. Nie wydaje się to jednak dobrym podejściem i prawdopodobnie będzie miało złą wydajność.

Z góry dziękuję za twoje myśli.

EDYCJA: Istnieje pewne zamieszanie co do sposobu użycia znaku *. Char * będzie argumentem funkcji fwrite, która zapisuje do potoku.

questionAnswers(8)

yourAnswerToTheQuestion