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 fread
retornará 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