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; }