• Giga@hdv-tech.com
  • Atendimento on-line 24 horas:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube
    • Instagram

    C, Leitura e Escrita de Documentos

    Horário da postagem: 11 de agosto de 2023

    Descreve como o programador C cria, abre e fecha um arquivo de texto ou arquivo binário.

    Um arquivo, significa uma série de bytes, seja um arquivo de texto ou um arquivo binário, a linguagem C, não apenas fornece acesso às funções de nível superior, mas também fornece a chamada subjacente (SO) para processar arquivos no dispositivo de armazenamento . Este capítulo explicará as chamadas importantes no gerenciamento de documentos.

    arquivo aberto

    Normalmente utilizando a função fopen() para criar um novo arquivo ou abrir um arquivo existente, esta chamada inicializa um objeto do tipo FILE que contém todas as informações necessárias para controlar o fluxo. Aqui está o protótipo desta chamada de função:

    FILE *fopen (const char * nome do arquivo, const char * modo);

    Aqui filename é uma string para nomear um arquivo, o valor do modo de acesso pode ser um dos seguintes valores:

    padrão

    descrição

    r

    Abra um arquivo de texto existente que permita sua leitura.

    w

    Abra um arquivo de texto que permita gravar no arquivo. Se o arquivo não existir, um novo arquivo será criado. Aqui, seu programa grava o conteúdo desde o início do arquivo. Se o arquivo existir, ele será truncado para comprimento zero e reescrito.

    a

    Abra um arquivo de texto e grave nele em modo de acréscimo. Se o arquivo não existir, um novo arquivo será criado. Aqui, seu programa anexa conteúdo aos arquivos que você já possui.

    r+

    Abra um arquivo de texto que permita ler e gravar o arquivo.

    w+

    Abra um arquivo de texto que permita ler e gravar o arquivo. Se o arquivo já existir, ele será truncado para comprimento zero e, se não existir, um novo arquivo será criado.

    a+

    Abra um arquivo de texto que permita ler e gravar o arquivo. Se o arquivo não existir, um novo arquivo será criado. A leitura começa no início do arquivo e a gravação ocorre apenas no modo de acréscimo.

    Se for um arquivo binário processado, use o seguinte modo de acesso para substituir o acima:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    arquivo fechado

    Para fechar o arquivo, use a função fclose(). O protótipo da função é o seguinte:

    int fclose(ARQUIVO *fp);

    • Se o arquivo for fechado com sucesso, a função fclose() retornará zero e se o erro retornar EOF. Esta função, na verdade, remove os dados do buffer, fecha o arquivo e libera toda a memória usada para aquele arquivo. EOF é uma constante definida no arquivo de cabeçalho stdio.h

    A biblioteca padrão C fornece várias funções para ler e gravar arquivos por caracteres ou como uma string de comprimento fixo.

    Escreva no arquivo

    Aqui estão as funções mais simples para escrever caracteres no stream:

    int fputc ( int c , ARQUIVO *fp );

    A função fputc() grava o valor do caractere do parâmetro c no fluxo de saída para o qual o fp aponta. Se as escritas forem bem-sucedidas, ele retornará o caractere escrito e o EOF se ocorrer um erro. Você pode usar a seguinte função para escrever uma string terminando com nulo no stream:

    int fputs ( const char *s , FILE *fp );

    A função fputs() grava a string s no fluxo de saída para onde o fp aponta. Se a gravação for bem-sucedida, ele retornará um valor não negativo e o EOF se ocorrer um erro. Você também pode usar a função int fprintf (FILE * fp, const char * format,...) para gravar uma string no arquivo. Experimente o seguinte exemplo:

    Nota:Certifique-se de ter um diretório tmp disponível e, se ele não existir, você precisará primeiro criá-lo em seu computador.

    /tmp geralmente é um diretório temporário no sistema Linux. Se você executar no sistema Windows, será necessário modificá-lo para um diretório existente no ambiente local, como: C:\tmp, D:\tmp, etc.

    exemplo vivo

    #incluir int main() { ARQUIVO *fp = NULL; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Isto está testando fprintf...\n "); fputs ("Isto está testando fputs...\n ", fp ); fechar (fp); }

    Quando o código acima é compilado e executado, ele cria um novo arquivo test.txt no diretório /tmp. E escreve em duas linhas usando duas funções diferentes. Vamos ler este arquivo a seguir.

    Leia o arquivo

    A seguir está a função mais simples para ler um único caractere de um arquivo:

    int fgetc(ARQUIVO*fp);

    A função fgetc() lê um caractere do arquivo de entrada para o qual o fp aponta. O valor de retorno é o caractere lido e o EOF se ocorrer um erro. A função a seguir permite ler uma string de um stream:

    char *fgets ( char *buf , int n , FILE *fp );

    A função fgets() lê n-1 caracteres do fluxo de entrada direcionado por fp. Ele copia a string lida para o buffer buf e acrescenta um caractere nulo no final para encerrar a string.

    Se esta função encontrar um caractere de linha quebrada '\ n' ou o EOF do final do arquivo antes de ler o último caractere, então retornará apenas aos caracteres lidos, incluindo quebras de linha. Você também pode usar a função int fscanf (FILE * fp, const char * format,...) para ler a string do arquivo, mas ela para de ler ao encontrar o primeiro espaço e quebra de linha.

    exemplo vivo

    #incluir int main() { ARQUIVO *fp = NULL; buff de char [255]; fp = fopen ("/tmp/test.txt", "r"); fscanf(fp, "%s",buff); printf("1:%s\n",buff); fgets(buff, 255, (FILE *)fp); printf("2:%s\n",buff); fgets(buff, 255, (FILE *)fp); printf("3:%s\n",buff); fechar (fp); }

    Quando o código acima é compilado e executado, ele lê os arquivos criados na seção anterior, produzindo os seguintes resultados:

    1: Este 2: está testando fprintf...

    3: Isso está testando fputs...

    Primeiro, o método fscanf() só lê This .porque encontra um espaço atrás. Segundo, chame a função fgets() para ler a parte restante até o final da linha. Finalmente, chame fgets() para ler a segunda linha completamente.

    Função de E/S binária

    As duas funções a seguir são usadas para entrada e saída binária:

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    Ambas as funções são de leitura e gravação para blocos de armazenamento – geralmente matrizes ou estruturas.

    Acima, sobre a leitura e gravação de arquivos C, pertence à HDV Phoelectron Technology Ltd., uma operação técnica de software. E a empresa para equipamentos relacionados à rede (como: ACONU/ comunicaçãoONU/ inteligenteONU/ fibraONU, etc.) reuniu uma poderosa equipe de software, para que cada cliente personalize as demandas exclusivas que precisam, além de deixar nossos produtos mais inteligentes e avançados.



    web