13. oktober 2006 - 09:20Der er
2 kommentarer og 1 løsning
Float til string i C
Hej,
Hvis man har en character buffer (Buff) og en double (X), hvorledes kan man så fylde bufferen med en string-representation af X? Kan ikke få sprintf til at funke, så hvis dette er løsningen vil jeg gerne se et eksempel på kode. Sproget er rent C, ikke C++. Mange tak på forhånd. Yates.
Nu er du dog virkelig på sporet, dog bør du altid bruge 'n' varianten af sprintf, snprintf, for at sikre at du aldrig skriver ud over enden af din buffer.
if (snprintf(Buff, TheSizeOfBuff, "%lg", X) >= TheSizeOfBuff) fprintf(stderr, "truncated\n");
TheSizeOfBuff - størrelsen på arrayet Buff, ikke at forveksle med størrelsen på pointeren. %lg - for double, %Lg for long double, der findes også nogle nyere macro der kan finde det rigtige format der skal lægges ind dem kan jeg dog ikke lige huske nu. Check på retur værdien af snprintf for at finde ud af om det gik godt.
Tak for svaret, Sick Mouse. Meget brugbart og i hvert fald lærerigt. Må tilstå jeg ikke er så flink altid til at tjekke om alt går godt. Hvad det angår er C et nådesløst sprog at arbejde med :-)
Y.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.