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

A função fseek () em C ++ define o indicador de posição do arquivo para o fluxo de arquivo fornecido.

A função fseek () é definida no arquivo de cabeçalho.

protótipo fseek ()

 int fseek (FILE * stream, deslocamento longo, origem int);

Se o arquivo for aberto no modo binário, a nova posição do ponteiro do arquivo será exatamente os bytes deslocados da origem.

Se o arquivo for aberto em modo de texto, os valores suportados para deslocamento são:

  • Zero: funciona com qualquer valor de origem, ou seja, SEEK_SET, SEEK_CUR e SEEK_END.
  • Valor retornado por uma chamada para ftell (stream): Funciona apenas com a origem SEEK_SET.

Se o fluxo for orientado para largura, as restrições de ambos os fluxos de texto e binários são aplicadas, ou seja, o resultado de ftell é permitido com SEEK_SET e deslocamento zero é permitido a partir de SEEK_SET e SEEK_CUR, mas não SEEK_END.

A função fseek também desfaz os efeitos de ungetc e limpa o status de fim de arquivo, se aplicável.

Se ocorrer um erro de leitura ou gravação, ferror é definido e a posição do arquivo não é afetada.

Parâmetros fseek ()

  • stream: O stream de arquivo a ser modificado.
  • deslocamento: o número de caracteres a serem deslocados da origem.
  • origem: posição usada como referência para adicionar ao deslocamento. Pode ter os seguintes valores:
valores de origem fseek ()
Valor Descrição
SEEK_SET Início do arquivo
SEEK_CUR Posição atual do ponteiro do arquivo
SEEK_END Fim do arquivo

fseek () Valor de retorno

  • Em caso de sucesso, a função fseek () retorna zero, diferente de zero caso contrário.

Exemplo: Como funciona a função fseek ()?

 #include int main() ( FILE* fp = fopen("example.txt","w+"); char ch; fputs("Erica 25 Berlin", fp); rewind(fp); printf("Name: "); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("Age: "); fseek(fp,10,SEEK_SET); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("City: "); fseek(fp,15,SEEK_SET); while((ch=fgetc(fp))!=EOF) putchar(ch); putchar(''); fclose(fp); return 0; )

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

 Nome: Erica Idade: 25 Cidade: Berlim

Artigos interessantes...