C ++ scanf - C ++ standarta bibliotēka

Funkcija scanf () C ++ tiek izmantota, lai nolasītu datus no stdin.

scanf () prototips

 int scanf (const char * formāts,…);

scanf()Funkcija nolasa datus no stdinun saglabā šo vērtību attiecīgajiem mainīgajiem.

Tas ir definēts galvenes failā.

scanf () parametri

  • format: Rādītājs nulles gala rakstzīmju virknei, kas norāda, kā lasīt ievadi. Tas sastāv no formāta specifikatoriem, kas sākas ar%.

    Formāta virknei ir šādas daļas:

    • Non whitespace charactersizņemot%, no kuriem katrs patērē vienu identisku rakstzīmi no ievades straumes. Tas var izraisīt funkcijas kļūmi, ja straumes nākamais raksturs nav vienāds.
    • Whitespace character: Visas secīgās atstarpes rakstzīmes tiek uzskatītas par vienu atstarpes rakstzīmi. Tālāk ' n', ' t' un '' tiek uzskatīti par vienādiem.
    • Conversion specification: Tas tiek izmantots šādā formātā:
      • Sākotnējais raksturs%, kas norāda sākumu
      • Neobligāts *, ko sauc par uzdevumu nomācošu rakstzīmi. Ja ir šī rakstzīme, scanf () nepiešķir rezultātu nevienam saņemšanas argumentam.
      • Neobligāts pozitīvs vesels skaitlis, kas norāda lauka maksimālo platumu. Tas norāda maksimālo rakstzīmju skaitu, ko scanf () atļauts patērēt, veicot pašreizējā reklāmguvumu specifikācijā norādīto pārveidošanu.
      • Neobligāts garuma pārveidotājs, kas norāda saņemošā argumenta lielumu.
      • Reklāmguvuma formāta norādītājs.
        Formāta specifikators Apraksts
        % Atbilst burtiskajam%
        c Sakrīt ar vienu vai vairākām rakstzīmēm. Ja platums ir definēts, precīzi atbilst platuma rakstzīmēm.
        s Saskaņo secīgas rakstzīmes, kas nav atstarpes. Ja platums ir noteikts, precīzi atbilst platuma rakstzīmēm vai līdz tiek atrasts pirmais atstarpe.
        (komplekts) Sakrīt ar tukšo rakstzīmju secību no norādītās rakstzīmju kopas. Ja kopas sākumā ir ^, tad visas rakstzīmes, kas nav iestatītas, tiek saskaņotas.
        d Atbilst decimāldaļskaitlim.
        i Sakrīt ar veselu skaitli.
        o Sakrīt ar neparakstītu astotnieku.
        X vai x Atbilst neparakstītam heksadecimālam skaitlim.
        u Sakrīt ar neparakstītu decimāldaļskaitli.
        A vai a, E vai e, F vai f, G vai g Atbilst peldošā komata skaitlim.
        n Atgriež līdz šim nolasīto rakstzīmju skaitu.
        lpp Atbilst ieviešanas definētai rakstzīmju secībai, kas nosaka rādītāju.
    Tātad formāta specifikatora vispārējais formāts ir: %(*)(width)(length)specifier
  • …: Citi papildu argumenti datu saņemšanai. Tie notiek secībā pēc formāta norādītāja.

scanf () atgriešanās vērtība

  • Ja tas ir veiksmīgs, scanf()funkcija atgriež veiksmīgi piešķirto saņemošo argumentu skaitu.
  • Ja atbilstības kļūme rodas pirms tika piešķirts pirmais saņemšanas arguments, atgriež nulli.
  • Ja ievades kļūme rodas pirms tika piešķirts pirmais saņemšanas arguments, EOF tiek atgriezts.

Piemērs: Kā darbojas scanf ()

 #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; )

Palaidot programmu, iespējamā izeja būs:

 Sveiks, Tim, jums ir 31 gads

Interesanti raksti...