C ++ scanf - C ++ Standardbibliotek

Scanf () -funktionen i C ++ används för att läsa data från stdin.

scanf () prototyp

 int scanf (const char * format, …);

Den scanf()funktionen läser data från stdinoch lagrar värden i de respektive variablerna.

Det definieras i rubrikfilen.

scanf () Parametrar

  • format: Pekare till en nollavslutad teckensträng som anger hur ingången ska läsas. Den består av formatspecifikationer som börjar med%.

    Formatsträngen har följande delar:

    • Non whitespace charactersutom% som var och en förbrukar ett identiskt tecken från ingångsströmmen. Det kan få funktionen att misslyckas om nästa tecken i strömmen inte jämför lika.
    • Whitespace character: Alla efterföljande blankstegstecken behandlas som enstaka blankstegstecken. Vidare anses ' n', ' t' och '' vara samma.
    • Conversion specification: Den har följande format:
      • Initialt% -tecken som anger början
      • En valfri * kallad tilldelningsundertryckande karaktär. Om det här tecknet finns, tilldelar scanf () inte resultatet till något mottagande argument.
      • Ett valfritt positivt heltal som anger maximal fältbredd. Den anger det maximala antalet tecken som scanf () får konsumera när den konvertering utförs som anges i den aktuella konverteringsspecifikationen.
      • En valfri längdmodifierare som anger storleken på det mottagande argumentet.
      • En konverteringsformatspecifikator.
        Format Specifier Beskrivning
        % Matchar den bokstavliga%
        c Matchar en enstaka karaktär eller flera tecken. Om bredd definieras matchar den exakt breddtecken.
        s Matchar på varandra följande icke-blankstegstecken. Om bredd är definierad matchar den exakt breddtecken eller tills första vita utrymmet hittas.
        (uppsättning) Matchar en icke tom teckenföljd från den givna uppsättningen tecken. Om är närvarande i början av uppsättningen matchas alla tecken som inte finns i uppsättningen.
        d Matchar ett decimaltal.
        i Matchar ett heltal.
        o Matchar ett osignerat oktalt heltal.
        X eller x Matchar ett osignerat hexadecimalt heltal.
        u Matchar ett osignerat decimaltal.
        A eller a, E eller e, F eller f, G eller g Matchar ett flytande nummer.
        n Returnerar antalet lästa tecken hittills.
        sid Matchar en implementeringsdefinierad teckensekvens som definierar en pekare.
    Så det allmänna formatet för formatspecifikatorn är: %(*)(width)(length)specifier
  • …: Andra ytterligare argument för att ta emot data. De förekommer i en sekvens enligt formatspecifikatorn.

scanf () Returvärde

  • Om det lyckas scanf()returnerar funktionen antalet mottagande argument som har tilldelats.
  • Om ett matchningsfel inträffar innan det första mottagande argumentet tilldelades, returnerar noll.
  • Om ingångsfel inträffar innan det första mottagande argumentet tilldelades returneras EOF.

Exempel: Hur funktionen scanf () fungerar

 #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ör programmet blir en möjlig utdata:

 Hej Tim, du är 31 år gammal

Intressanta artiklar...