Scanf () -funktionen i C ++ bruges til at læse dataene fra stdin.
scanf () prototype
int scanf (const char * format,…);
Den scanf()
aflæser data fra stdin
og gemmer værdierne i de respektive variabler.
Det er defineret i header-fil.
scanf () Parametre
format
: Markør til en null-termineret tegnstreng, der specificerer, hvordan input skal læses. Den består af formatspecifikationer, der starter med%.Formatstrengen har følgende dele:
Non whitespace characters
undtagen%, som hver bruger et identisk tegn fra inputstrømmen. Det kan få funktionen til at mislykkes, hvis det næste tegn på streamen ikke sammenligner det samme.Whitespace character
: Alle de på hinanden følgende mellemrumstegn behandles som et enkelt mellemrumstegn. Yderligere betragtes ' n', ' t' og '' som de samme.Conversion specification
: Det følger følgende format:- Indledende% tegn, der angiver begyndelsen
- En valgfri * kaldet tildelingsundertrykkende karakter. Hvis dette tegn er til stede, tildeler scanf () ikke resultatet til noget modtagende argument.
- Et valgfrit positivt heltal, der angiver den maksimale feltbredde. Den specificerer det maksimale antal tegn, som scanf () har tilladelse til at forbruge, når den konvertering er specificeret i den aktuelle konverteringsspecifikation.
- En valgfri længdemodifikator, der angiver størrelsen på det modtagende argument.
- En konverteringsformat specificerer.
Format Specifier Beskrivelse % Matcher den bogstavelige% c Matcher et enkelt tegn eller flere tegn. Hvis bredde er defineret, matcher den nøjagtigt bredde. s Matcher på hinanden følgende ikke-mellemrumstegn. Hvis bredde er defineret, matcher den nøjagtigt bredde tegn, eller indtil første hvide mellemrum er fundet. (sæt) Matcher en ikke-tom række af tegn fra det givne sæt tegn. Hvis er til stede i begyndelsen af sættet, matches alle de tegn, der ikke er i sættet. d Matcher et decimaltal. jeg Matcher et heltal. o Matcher et usigneret oktalt heltal. X eller x Matcher et usigneret hexadecimalt heltal. u Matcher et usigneret decimaltal. A eller a, E eller e, F eller f, G eller g Matcher et flydende nummer. n Returnerer antallet af læste tegn indtil videre. s Matcher en implementeringsdefineret tegnsekvens, der definerer en markør.
%(*)(width)(length)specifier
- …: Andre yderligere argumenter for modtagelse af data. De forekommer i en sekvens i henhold til formatspecifikatoren.
scanf () Returværdi
- Hvis det lykkes,
scanf()
returnerer funktionen antallet af modtagende argumenter, der er tildelt med succes. - Hvis en matchende fejl opstår, før det første modtagelsesargument blev tildelt, returnerer nul.
- Hvis inputfejl opstår, før det første modtagelsesargument blev tildelt, returneres EOF.
Eksempel: Hvordan scanf () fungerer
#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"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )
Når du kører programmet, vil en mulig output være:
Hej Tim, du er 31 år gammel