strfromd(3) Library Functions Manual strfromd(3) NUME strfromd, strfromf, strfroml - convertete o valoare in virgula mobila intr-un ir de caractere BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int strfromd(char str[restrict .n], size_t n, const char *restrict format, double fp); int strfromf(char str[restrict .n], size_t n, const char *restrict format, float fp); int strfroml(char str[restrict .n], size_t n, const char *restrict format, long double fp); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): strfromd(), strfromf(), strfroml(): __STDC_WANT_IEC_60559_BFP_EXT__ DESCRIERE Aceste funcii convertesc o valoare in virgula mobila, fp, intr-un ir de caractere, str, cu un ir format configurabil. Cel mult n caractere sunt stocate in str. Octetul de terminare nul ("\0") este scris daca i numai daca n este suficient de mare, altfel irul scris este trunchiat la n caractere. Funciile strfromd(), strfromf() i strfroml() sunt echivalente cu snprintf(str, n, format, fp); cu excepia irului format. Formatul irului de format irul format trebuie sa inceapa cu caracterul ,,%". Acesta este urmat de o precizie opionala care incepe cu caracterul punct (.), urmat de un numar intreg zecimal opional. In cazul in care nu se specifica niciun numar intreg dupa caracterul punct, se utilizeaza o precizie de zero. In cele din urma, irul de format trebuie sa aiba unul dintre specificatorii de conversie a, A, e, E, f, F, F, g sau G. Specificatorul de conversie se aplica in funcie de tipul de virgula mobila indicat de sufixul funciei. Prin urmare, spre deosebire de snprintf(), irul de format nu are un caracter modificator de lungime. A se vedea snprintf(3) pentru o descriere detaliata a acestor specificatori de conversie. Implementarea este conforma cu standardul C99 privind conversia valorilor NaN i infinit: Daca fp este un NaN, +NaN sau -NaN i f (sau a, e, g) este specificatorul de conversie, conversia este in ,,nan" ; ,,nan", sau respectiv ,,-nan". Daca F (sau A, E, G) este specificatorul de conversie, conversia este la ,,NAN" sau ,,-NAN". In mod similar, daca fp este infinit, acesta este convertit in [-]inf sau [-]INF. Un ir format incorect are ca rezultat un comportament nedefinit. VALOAREA RETURNATA Funciile strfromd(), strfromf() i strfroml() returneaza numarul de caractere care ar fi fost scrise in str daca n ar fi avut suficient spaiu, fara a lua in considerare octetul nul de terminare. Astfel, o valoare de returnare de n sau mai mare inseamna ca ieirea a fost trunchiata. ATRIBUTE Pentru o explicaie a termenilor utilizai in aceasta seciune, consultai attributes(7) i seciunea POSIX Safety Concepts din manualul GNU C Library. +-------------------------------+---------------------+----------------+ |Interfaa | Atribut | Valoare | +-------------------------------+---------------------+----------------+ |strfromd(), strfromf(), | Sigurana firelor | MT-Safe locale | |strfroml() | | | + +---------------------+----------------+ | | Async-signal safety | AS-Unsafe heap | + +---------------------+----------------+ | | Async-cancel safety | AC-Unsafe mem | +-------------------------------+---------------------+----------------+ Nota: aceste atribute au caracter preliminar. STANDARDE ISO/IEC TS 18661-1. VERSIUNI strfromd() strfromf() strfroml() glibc 2.25. NOTE Aceste funcii in cont de categoria LC_NUMERIC a configuraiei regionale curente. EXEMPLE Pentru a converti valoarea 12.1 ca tip in virgula mobila, intr-un ir folosind notaia zecimala, rezultand ,,12.100000": #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromf(s, ssize, "%f", 12.1); Pentru a converti valoarea 12,3456 ca tip in virgula mobila, intr-un ir folosind notaia zecimala cu doua cifre de precizie, rezultand ,,12,35": #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromf(s, ssize, "%.2f", 12.3456); Pentru a converti valoarea 12.345e19 ca tip de dubla precizie intr-un ir folosind notaia tiinifica cu zero cifre de precizie, rezultand ,,1E+20": #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromd(s, ssize, "%.E", 12.345e19); CONSULTAI I atof(3), snprintf(3), strtod(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 strfromd(3)