table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
strfromd(3) | Library Functions Manual | strfromd(3) |
NUME¶
strfromd, strfromf, strfroml - convertește o valoare în virgulă mobilă într-un șir de caractere
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <stdlib.h>
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);
strfromd(), strfromf(), strfroml():
__STDC_WANT_IEC_60559_BFP_EXT__
DESCRIERE¶
Aceste funcții convertesc o valoare în virgulă mobilă, fp, într-un șir de caractere, str, cu un șir format configurabil. Cel mult n caractere sunt stocate în str.
Octetul de terminare nul („\0”) este scris dacă și numai dacă n este suficient de mare, altfel șirul scris este trunchiat la n caractere.
Funcțiile strfromd(), strfromf() și strfroml() sunt echivalente cu
snprintf(str, n, format, fp);
cu excepția șirului format.
Formatul șirului de format¶
Șirul format trebuie să înceapă cu caracterul „%”. Acesta este urmat de o precizie opțională care începe cu caracterul punct (.), urmat de un număr întreg zecimal opțional. În cazul în care nu se specifică niciun număr întreg după caracterul punct, se utilizează o precizie de zero. În cele din urmă, șirul de format trebuie să aibă unul dintre specificatorii de conversie a, A, e, E, f, F, F, g sau G.
Specificatorul de conversie se aplică în funcție de tipul de virgulă mobilă indicat de sufixul funcției. Prin urmare, spre deosebire de snprintf(), șirul de format nu are un caracter modificator de lungime. A se vedea snprintf(3) pentru o descriere detaliată a acestor specificatori de conversie.
Implementarea este conformă cu standardul C99 privind conversia valorilor NaN și infinit:
În mod similar, dacă fp este infinit, acesta este convertit în [-]inf sau [-]INF.
Un șir format incorect are ca rezultat un comportament nedefinit.
VALOAREA RETURNATö
Funcțiile strfromd(), strfromf() și strfroml() returnează numărul de caractere care ar fi fost scrise în str dacă n ar fi avut suficient spațiu, fără a lua în considerare octetul nul de terminare. Astfel, o valoare de returnare de n sau mai mare înseamnă că ieșirea a fost trunchiată.
VERSIUNI¶
Funcțiile strfromd(), strfromf() și strfroml() sunt disponibile începând cu glibc 2.25.
ATRIBUTE¶
Pentru o explicație a termenilor utilizați în această secțiune, consultați attributes(7) și secțiunea POSIX Safety Concepts din manualul GNU C Library.
Interfață | Atribut | Valoare |
strfromd(), strfromf(), strfroml() | Siguranța firelor | MT-Safe locale |
Async-signal safety | AS-Unsafe heap | |
Async-cancel safety | AC-Unsafe mem |
Notă: aceste atribute au caracter preliminar.
STANDARDE¶
C99, ISO/IEC TS 18661-1.
NOTE¶
Funcțiile strfromd(), strfromf() și strfroml() țin cont de categoria LC_NUMERIC a configurației regionale curente.
EXEMPLE¶
Pentru a converti valoarea 12.1 ca tip în virgulă mobilă, într-un șir folosind notația zecimală, rezultând „12.100000”:
#define __STDC_WANT_IEC_60559_BFP_EXT__ #include <stdlib.h> int ssize = 10; char s[ssize]; strfromf(s, ssize, "%f", 12.1);
Pentru a converti valoarea 12,3456 ca tip în virgulă mobilă, într-un șir folosind notația zecimală cu două cifre de precizie, rezultând „12,35”:
#define __STDC_WANT_IEC_60559_BFP_EXT__ #include <stdlib.h> int ssize = 10; char s[ssize]; strfromf(s, ssize, "%.2f", 12.3456);
Pentru a converti valoarea 12.345e19 ca tip de dublă precizie într-un șir folosind notația științifică cu zero cifre de precizie, rezultând „1E+20”:
#define __STDC_WANT_IEC_60559_BFP_EXT__ #include <stdlib.h> int ssize = 10; char s[ssize]; strfromd(s, ssize, "%.E", 12.345e19);
CONSULTAȚI ȘI¶
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
5 februarie 2023 | Pagini de manual de Linux 6.03 |