C ++ scanf - C ++ Standardbibliotek

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 stdinog 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 charactersundtagen%, 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.
    Så det generelle format for formatspecifikator er: %(*)(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

Interessante artikler...