C ++ fread () - Biblioteca padrão C ++

A função fread () em C ++ lê um número especificado de caracteres do fluxo de entrada fornecido.

protótipo fread ()

 size_t fread (void * buffer, size_t size, size_t count, FILE * stream);

A fread()função lê o número de contagem de objetos, cada um com bytes de tamanho de tamanho do fluxo de entrada fornecido. É semelhante a chamar fgetc () size times para ler cada objeto. De acordo com o número de caracteres lidos, o indicador de posição do arquivo é incrementado.

O valor resultante do indicador de posição do arquivo para o fluxo é indeterminado se ocorrer algum erro durante a leitura do arquivo.

Se os objetos não forem trivialmente copiáveis, o comportamento será indefinido.

Se o tamanho ou a contagem for zero, uma chamada para freadretornará zero e nenhuma outra ação será executada.

É definido no arquivo de cabeçalho.

Parâmetros fread ()

  • buffer: Ponteiro para o bloco de memória para armazenar os objetos.
  • tamanho: tamanho de cada objeto em bytes.
  • contagem: o número de objetos a serem lidos.
  • stream: O stream de arquivo do qual ler os dados.

fread () Valor de retorno

A fread()função retorna o número de objetos lidos com sucesso. Se ocorrer um erro ou condição de fim de arquivo, o valor de retorno pode ser menor que count.

Exemplo 1: como a função fread () funciona

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

Suponha que o arquivo contenha os seguintes dados:

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

Quando você executa o programa, a saída será:

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

Exemplo 2: como a função fread () funciona quando a contagem ou o tamanho é zero

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

Quando você executa o programa, a saída será:

 Quando contagem = 0, valor de retorno = 0 Quando tamanho = 0, valor de retorno = 0

Artigos interessantes...