aula 208

Como escrever em um arquivo texto com a função fputc

Dando continuidade ao nosso Curso de Programação C, iniciamos nesta aula uma nova playlist sobre arquivos texto e binário com a linguagem de programação C. Nesta aula veremos como escrever em um arquivo texto com a função fputc.

Como criar um arquivo texto com a Linguagem C?

Primeiro precisamos criar um arquivo para só depois ler ou escrever neste arquivo. Para criar um arquivo na linguagem de programação C podemos utilizar a função fopen. Esta função recebe dois parâmetros, o nome do arquivo que desejamos abrir / criar e o modo de abertura. Seu retorno é NULL caso ocorra algum problema e um endereço para o arquivo caso ele seja aberto / criado corretamente.

    // abrindo o arquivo conto.txt para escrita
    FILE *file;
    file = fopen("conto.txt","w");

No exemplo anterior foi utilizado a extensão .txt. Contudo, você pode criar sua extensão. A extensão de um arquivo é uma mera formalidade para indicar o tipo de cada arquivo e quais programas podem ser utilizados para abri-los ou não.

Modos de abertura de arquivos texto em C

Ao abrir um arquivo em C precisamos indicar o que desejamos fazer neste arquivo: escrever, ler, escrever a partir do final do arquivo, as duas coisas, etc.

Um arquivo pode ser aberto de diferentes modos e é importante ficar sempre atento para a utilização do modo correto.

Os modos de abertura de um arquivo texto em C são:

    w -> Escrita (cria o arquivo caso ele não exista)
    r -> leitura
    a -> anexar (adicionar informação ao final de um arquivo que já existe)
    r+ -> leitura e escrita
    w+ -> leitura e escrita (apaga o conteúdo caso o arquivo exista)
    a+ -> leitura e escrita (adiciona ao final do arquivo)

Observe que ao abrir um arquivo no modo leitura ( w ), ele será criado se o mesmo não existir. Contudo, se ele já existir, todo seu conteúdo será apagado. Por isso é necessário atenção e conhecer os diferentes modos de abertura de arquivos texto em C.

Uma vez que tentamos abrir / criar um arquivo, é sempre interessante verificar se o ponteiro retornado pela função fopen é diferente de NULL, evitando assim erros durante a execução do programa.

    FILE *file;

    file = fopen("conto.txt","w");

    if(file){
        // arquivo aberto com sucesso para escrita
    }
    else
        printf("\n\t--> ERRO ao abrir arquivo!\n");

Como escrever em um arquivo texto com a função fputc?

A função fputc recebe dois parâmetros, uma variável do tipo char, que contêm o caracter que será escrito, e o ponteiro para o arquivo onde o caracter será escrito. Esta função escreve um caracter por vez.

Para escrever uma palavra, uma frase ou mesmo um texto, podemos pedir que o usuário digite o texto e ler, letra por letra, até encontrar o caracter ENTER ( \n ), assim:

        // lendo e escrevendo vários caracteres

        printf("\nDigite um texto e pressione ENTER ao finalizar!");
        scanf("%c", &letra);  // lê o primeiro caracter

        while(letra != '\n'){  // enquanto letra for diferente do ENTER
            fputc(letra, file);  // escreve letra no arquivo apontado por fila
            scanf("%c", &letra);  // lê o próximo caracter do buffer do teclado
        }

Código de exemplo completo para escrever em arquivo texto com a função fputc

/*
        Aula 208: Como escrever em arquivo texto com a funçăo fputc?

        Código escrito por Wagner Gaspar
        Junho de 2021

        Modos de abertura de arquivos:
        w -> Escrita
        r -> leitura
        a -> anexar
        r+ -> leitura e escrita
        w+ -> leitura e escrita (apaga o conteúdo caso o arquivo exista)
        a+ -> leitura e escrita (adiciona ao final do arquivo)
*/

int main(){

    FILE *file;
    char letra;

    file = fopen("conto.txt","w");

    if(file){
        printf("\nDigite um texto e pressione ENTER ao finalizar!");
        scanf("%c", &letra);
        while(letra != '\n'){
            fputc(letra, file);
            scanf("%c", &letra);
        }
        fclose(file);
    }
    else
        printf("\n\t--> ERRO ao abrir arquivo!\n");

    return 0;
}

Deixe um comentário

dezoito − catorze =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.