• Giga@hdv-tech.com
  • Atendimento Online 24H:
    • 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 um arquivo binário.

    Um arquivo, significa uma série de bytes, seja um arquivo de texto ou um arquivo binário, C Language, não apenas fornece o 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.

    abrir arquivo

    Geralmente 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 permite 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 no arquivo em um 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 permite ler e gravar o arquivo.

    w+

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

    a+

    Abra um arquivo de texto que permite 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 o arquivo binário for 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, por favor, 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() retorna zero, e se o erro retornar EOF.Essa função, na verdade, remove os dados do buffer, fecha o arquivo e libera toda a memória usada para esse 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 , FILE *fp );

    A função fputc () escreve o valor do caractere do parâmetro c no fluxo de saída para o qual o fp aponta.Se as gravações forem bem-sucedidas, ele retorna 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 () escreve a string s no fluxo de saída para onde o fp aponta.Se as gravações forem bem-sucedidas, 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,...) grava uma string no arquivo.Tente o seguinte exemplo:

    Nota:Certifique-se de que você tenha um diretório tmp disponível e, se ele não existir, será necessário criá-lo primeiro 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

    #incluirint main() { ARQUIVO *fp = NULL;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp, "Isto é um teste para fprintf...\n");fputs ("Isto é um teste para fputs...\n ", fp );fclose (fp);}

    Quando o código acima é compilado e executado, ele cria um novo arquivo test.txt no diretório /tmp.E grava 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 seguinte função permite que você leia 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 finalizar 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 para os 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 a quebra de linha.

    exemplo vivo

    #incluirint main() { ARQUIVO *fp = NULL;lustre de char [255];fp = fopen ("/tmp/test.txt", "r");fscanf(fp, "%s", buff);printf("1:%s\n",buff);fgets (buff, 255, (ARQUIVO *)fp);printf("2:%s\n",buff);fgets (buff, 255, (ARQUIVO *)fp);printf("3:%s\n",buff);fclose (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 é um teste para fputs...

    Primeiro, o método de fscanf() apenas lê This .porque encontra um espaço atrás.Em segundo lugar, 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 I/O binária

    As duas funções a seguir são usadas para a 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 lidas e gravadas para blocos de armazenamento, geralmente matrizes ou estruturas.

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



    site da web