C ++ fread () - C ++ Standard Library

C ++: n fread () -funktio lukee tietyn määrän merkkejä annetusta syötevirrasta.

fread () prototyyppi

 koko_t-leipä (mitätön * puskuri, koko_t-koko, koko_t-määrä, FILE * -virta);

fread()Toiminto lukee mukaisen määrän objekteja, jokainen size tavua annetusta syöttövirrasta. Se on samanlainen kuin kutsumalla fgetc () koon kertaa lukemaan kukin objekti. Luettujen merkkien lukumäärän mukaan tiedoston sijainnin ilmaisinta lisätään.

Virran tiedoston sijainnin osoittimen tulos on määrittelemätön, jos tiedostoa luettaessa tapahtuu virheitä.

Jos objekteja ei voida triviaalisesti kopioida, käyttäytymistä ei ole määritelty.

Jos koko tai määrä on nolla, puhelu numeroon freadpalauttaa nollan eikä mitään muuta toimintaa suoriteta.

Se määritetään otsikkotiedostossa.

fread () -parametrit

  • puskuri: Osoitin muistilohkoon objektien tallentamiseksi.
  • size: Kunkin objektin koko tavuina.
  • count: Luettavien kohteiden määrä.
  • stream: Tiedostovirta, josta tiedot voidaan lukea.

fread () Palautusarvo

fread()Funktio palauttaa joukko esineitä luettu onnistuneesti. Jos ilmenee virhe tai tiedoston loppu, paluuarvo voi olla pienempi kuin määrä.

Esimerkki 1: Kuinka funktio fread () toimii

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Oletetaan, että tiedosto sisältää seuraavat tiedot:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Kun suoritat ohjelmaa, tulos on:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Esimerkki 2: Kuinka funktio fread () toimii, kun joko luku tai koko on nolla

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 Kun laskenta = 0, palautusarvo = 0 Kun koko = 0, palautusarvo = 0

Mielenkiintoisia artikkeleita...