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