Funcția fscanf () din C ++ este utilizată pentru a citi datele din fluxul de fișiere.
fscanf () prototip
int fscanf (FILE * stream, const char * format, …);
fscanf()
Funcția citește datele din fluxul de fișiere și stochează valorile în variabilele respective.
Este definit în fișierul antet.
fscanf () Parametri
stream
: Un flux de fișiere de intrare din care să citiți datele.format
: Pointer către un șir de caractere terminat nul care specifică modul de citire a intrării. Se compune din specificatori de format care încep cu%.Șirul de format are următoarele părți:
Non whitespace characters
cu excepția% din care fiecare consumă un caracter identic din fluxul de intrare. Poate provoca eșecul funcției dacă următorul caracter din flux nu compară egal.Whitespace character
: Toate caracterele consecutive ale spațiului alb sunt tratate ca un singur caracter al spațiului alb. Mai mult, ' n', ' t' și '' sunt considerate aceleași.Conversion specification
: Urmează următorul format:- % Caracter inițial care specifică începutul
- Un caracter opțional * numit caracter de suprimare a atribuirilor. Dacă acest caracter este prezent, fscanf () nu atribuie rezultatul niciunui argument primitor.
- Un număr întreg pozitiv opțional care specifică lățimea maximă a câmpului. Specifică numărul maxim de caractere pe care fscanf () i se permite să le consume atunci când efectuează conversia specificată de specificația curentă de conversie.
- Un modificator opțional de lungime care specifică dimensiunea argumentului de primire.
- Un specificator de format de conversie.
Specificator de format Descriere % Se potrivește cu% literal c Potriveste un singur caracter sau mai multe caractere. Dacă lățimea este definită, se potrivește exact cu caractere de lățime. s Potrivește caractere consecutive fără spațiu alb. Dacă lățimea este definită, se potrivește exact cu lățimea caracterelor sau până când se găsește primul spațiu alb. (a stabilit) Potrivește o secvență de caractere ne goală din setul de caractere dat. Dacă este prezent la începutul setului, atunci toate caracterele care nu sunt în set sunt potrivite. d Se potrivește cu un număr întreg zecimal. eu Se potrivește cu un număr întreg. o Se potrivește cu un întreg octal nesemnat. X sau x Se potrivește cu un număr întreg hexazecimal nesemnat. tu Se potrivește cu un număr zecimal nesemnat. A sau a, E sau e, F sau f, G sau g Se potrivește cu un număr în virgulă mobilă. n Returnează numărul de caractere citite până acum. p Se potrivește cu o secvență de caractere definită de implementare care definește un pointer.
%(*)(width)(length)specifier
- …: Alte argumente suplimentare pentru primirea datelor. Acestea apar într-o secvență conform specificatorului de format.
fscanf () Valoare returnată
- Dacă are succes,
fscanf()
funcția returnează numărul de argumente primite atribuite cu succes. - Dacă apare o eroare de potrivire înainte ca primul argument de primire să fie atribuit, returnează zero.
- Dacă eșecul de intrare apare înainte ca primul argument de primire să fie atribuit, EOF este returnat.
Exemplu: Cum funcționează funcția fscanf ()
#include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); fscanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )
Când rulați programul, o posibilă ieșire va fi:
Bună Tim, ai 31 de ani