scanf(3) Library Functions Manual scanf(3) NUME scanf, fscanf, vscanf, vfscanf - conversia formatului FILE (fiierului) de intrare BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int scanf(const char *restrict format, ...); int fscanf(FILE *restrict stream, const char *restrict format, ...); #include int vscanf(const char *restrict format, va_list ap); int vfscanf(FILE *restrict stream, const char *restrict format, va_list ap); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): vscanf(), vfscanf(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L DESCRIERE Familia de funcii scanf() scaneaza datele de intrare formatate ca sscanf(3), dar citite dintr-un FILE. Este foarte dificil de utilizat corect aceste funcii i este preferabil sa se citeasca linii intregi cu fgets(3) sau getline(3) i sa se analizeze ulterior cu sscanf(3) sau cu funcii mai specializate, cum ar fi strtol(3). Funcia scanf() citete datele de intrare din fluxul de intrare standard stdin, iar fscanf() citete datele de intrare din indicatorul de flux stream. Funcia vfscanf() este analoga cu vfprintf(3) i citete datele de intrare de la indicatorul de flux stream utilizand o lista de indicatori cu argument variabil (a se vedea stdarg(3). Funcia vscanf() este analoga cu vprintf(3) i citete de la intrarea standard. VALOAREA RETURNATA In caz de reuita, aceste funcii returneaza numarul de elemente de intrare care s-au potrivit cu succes i au fost atribuite; acesta poate fi mai mic decat cel prevazut sau chiar zero, in cazul unui eec de potrivire iniiala. Valoarea EOF este returnata daca se ajunge la sfaritul intrarii inainte de prima conversie reuita sau de un eec de potrivire. EOF este, de asemenea, returnata in cazul in care apare o eroare de citire, caz in care se activeaza indicatorul de eroare pentru flux (a se vedea ferror(3)), iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EAGAIN Descriptorul de fiier subiacent lui stream este marcat ca fiind neblocant, iar operaiunea de citire s-ar bloca. EBADF Descriptorul de fiier subiacentlui stream nu este valid sau nu este deschis pentru citire. EILSEQ Secvena de octei introdusa nu formeaza un caracter valid. EINTR Operaia de citire a fost intrerupta de un semnal; a se vedea signal(7). EINVAL Nu sunt suficiente argumente; sau format este NULL. ENOMEM Memorie insuficienta. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +-------------------------------+---------------------+----------------+ |Interfaa | Atribut | Valoare | +-------------------------------+---------------------+----------------+ |scanf(), fscanf(), vscanf(), | Sigurana firelor | MT-Safe locale | |vfscanf() | | | +-------------------------------+---------------------+----------------+ STANDARDE C11, POSIX.1-2008. ISTORIC C99, POSIX.1-2001. AVERTISMENTE Aceste funcii ingreuneaza distincia dintre liniile noi i alte spaii albe, ceea ce este deosebit de problematic in cazul intrarilor de tip ,,line-buffered", cum ar fi fluxul de intrare standard. Aceste funcii nu pot raporta erori dupa ultima specificaie de conversie nesuprimata. ERORI Este imposibil sa se tie cu exactitate cate caractere au consumat aceste funcii din fluxul de intrare, deoarece ele raporteaza doar numarul de conversii reuite. De exemplu, daca intrarea este "123\n a", scanf("%d %d", &a, &b) va consuma cifrele, linia noua i spaiul, dar nu i litera a. Acest lucru face dificila recuperarea in cazul unei intrari nevalide. CONSULTAI I fgets(3), getline(3), sscanf(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.18 21 septembrie 2025 scanf(3)