C ++ scanf - C ++ standartinė biblioteka

Funkcija scanf () C ++ naudojama norint nuskaityti duomenis iš stdin.

„scanf“ () prototipas

 int scanf (const char * formatas,…);

scanf()Funkcija nuskaito duomenis iš stdinir parduotuvių vertybes į atitinkamus kintamuosius.

Tai apibrėžta antraštės faile.

scanf () parametrai

  • format: Neleistos simbolių eilutės, nurodančios, kaip skaityti įvestį, žymeklis. Jį sudaro formato specifikatoriai, prasidedantys%.

    Formato eilutę sudaro šios dalys:

    • Non whitespace charactersišskyrus%, kurių kiekvienas sunaudoja vieną identišką simbolį iš įvesties srauto. Tai gali sukelti funkcijos gedimą, jei kitas srauto simbolis nėra lygus.
    • Whitespace character: Visi vienas po kito einantys simboliai yra laikomi atskirais tarpais. Toliau ' n', ' t' ir '' laikomos vienodomis.
    • Conversion specification: Jis naudojamas tokiu formatu:
      • Pradinis% simbolis, nurodantis pradžią
      • Pasirenkamas * vadinamas priskyrimą slopinančiu simboliu. Jei šis simbolis yra, scanf () nepriskiria rezultato jokiam priėmimo argumentui.
      • Pasirenkamas teigiamas sveikasis skaičius, nurodantis maksimalų lauko plotį. Jame nurodomas maksimalus simbolių, kuriuos leidžiama sunaudoti scanf (), atliekant konversiją, nurodytą dabartinėje konversijos specifikacijoje, skaičius.
      • Pasirenkamas ilgio modifikatorius, nurodantis gaunamo argumento dydį.
      • Konversijos formato specifikatorius.
        Formato specifikatorius apibūdinimas
        % Atitinka pažodinį%
        c Atitinka vieną ar kelis simbolius. Jei apibrėžtas plotis, tiksliai atitinka pločio simbolius.
        s Atitinka vienas po kito einančius simbolius be tarpų. Jei plotis yra apibrėžtas, tiksliai atitinka pločio simbolius arba tol, kol bus rastas pirmasis tarpas.
        (rinkinys) Atitinka ne tuščią simbolių seką iš pateikto simbolių rinkinio. Jei aibės pradžioje yra ^, tada visi nenurodyti simboliai sutampa.
        d Atitinka dešimtainį skaičių.
        i Atitinka sveiką skaičių.
        o Atitinka nepasirašytą aštuonetą.
        X arba x Atitinka nepasirašytą šešioliktainį sveikąjį skaičių.
        u Atitinka nepasirašytą dešimtainį skaičių.
        A arba a, E arba e, F arba f, G arba g Atitinka slankiojo kablelio skaičių.
        n Grąžina iki šiol perskaitytų simbolių skaičių.
        p Atitinka įgyvendinimo apibrėžtą simbolių seką, apibrėžiančią žymeklį.
    Taigi bendras formato specifikatoriaus formatas yra: %(*)(width)(length)specifier
  • …: Kiti papildomi argumentai norint gauti duomenis. Jie vyksta seka pagal formato specifikatorių.

scanf () Grąžinimo vertė

  • Jei tai pavyks, scanf()funkcija grąžins sėkmingai priskirtų gaunamų argumentų skaičių.
  • Jei atitikties gedimas įvyksta prieš priskiriant pirmąjį gavimo argumentą, grąžina nulį.
  • Jei įvesties klaida įvyksta prieš priskiriant pirmąjį priėmimo argumentą, EOF grąžinamas.

Pavyzdys: Kaip veikia scanf () funkcija

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

Kai paleisite programą, galimas rezultatas bus:

 Sveikas, Timai, jums 31 metai

Įdomios straipsniai...