C ++ fread () - C ++ standartinė biblioteka

Funkcija „fread“ (C ++) nuskaito nurodytą skaičių simbolių iš nurodyto įvesties srauto.

fread () prototipas

 dydis_t plotas (negaliojantis * buferis, dydis_t dydis, dydis_t skaičius, FILE * srautas);

fread()Funkcija skaito suskaičiuoti objektų, kiekvienas dydis dydžio baitų iš tikro įvesties srauto. Tai panašu į fgetc () dydžio kartų iškvietimą, norint perskaityti kiekvieną objektą. Pagal perskaitytų simbolių skaičių failo padėties indikatorius yra padidinamas.

Gaunama srauto failo padėties indikatoriaus vertė yra neapibrėžta, jei skaitant failą įvyksta kokių nors klaidų.

Jei objektai nėra trivialiai nukopijuojami, elgesys nėra apibrėžtas.

Jei dydis ar skaičius yra lygus nuliui, raginimas freadgrąžinti nulį ir neatliekama jokių kitų veiksmų.

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

fread () parametrai

  • buferis: žymeklis į atminties bloką objektams laikyti.
  • dydis: kiekvieno objekto dydis baitais.
  • skaičius: skaitomų objektų skaičius.
  • srautas: failų srautas, iš kurio galima nuskaityti duomenis.

fread () Grąžinimo vertė

Į fread()funkcija grąžina objektų skaičius sėkmingai skaityti. Jei įvyksta klaida arba baigiasi failo sąlyga, grąžinimo vertė gali būti mažesnė nei skaičiuojama.

1 pavyzdys: Kaip veikia „fread“) funkcija

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

Tarkime, kad faile yra šie duomenys:

 Dennisas Ritchie: C Bjarne'as Stroustrupas: C ++ Guido van Rossumas: Pythonas Jamesas Goslingas: „Java“

Kai paleisite programą, išvestis bus:

 Dennisas Ritchie: C Bjarne'as Stroustrupas: C ++ Guido van Rossumas: Pythonas Jamesas Goslingas: „Java“

2 pavyzdys: Kaip veikia „fread“) funkcija, kai skaičius arba dydis yra nulis

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

Kai paleisite programą, išvestis bus:

 Kai skaičius = 0, grąžinimo vertė = 0 Kai dydis = 0, grąžinimo vertė = 0

Įdomios straipsniai...