Após abrir um arquivo para escrita, podemos armazenar informações nele utilizando funções específicas da biblioteca stdio.h.

O processo é bastante semelhante ao que já fazemos com a saída padrão utilizando a função printf(). A principal diferença é que, em vez de enviar os dados para a tela do computador, iremos enviá-los para um arquivo.

Nesta seção conheceremos as principais funções utilizadas para escrever dados em arquivos texto.


A função fprintf

A função mais utilizada para escrita em arquivos é a fprintf.

Sua sintaxe é:

int fprintf(FILE *arquivo, const char *formato, ...);

Ela funciona de maneira muito semelhante à função printf(), porém recebe como primeiro parâmetro o arquivo no qual os dados serão gravados.

Exemplo:

#include <stdio.h>

int main() {
    FILE *arquivo = fopen("mensagem.txt", "w");

    if (arquivo != NULL) {
        fprintf(arquivo, "Olá, mundo!\n");

        fclose(arquivo);
    }

    return 0;
}

Após a execução do programa, o arquivo mensagem.txt conterá:

Olá, mundo!

Gravando variáveis

Assim como em printf(), podemos utilizar especificadores de formato para gravar valores armazenados em variáveis.

#include <stdio.h>

int main() {
    char nome[50] = "Maria";
    float nota = 9.5;

    FILE *arquivo = fopen("aluno.txt", "w");

    if (arquivo != NULL) {
        fprintf(arquivo, "Nome: %s\n", nome);
        fprintf(arquivo, "Nota: %.1f\n", nota);

        fclose(arquivo);
    }

    return 0;
}

Conteúdo gerado:

Nome: Maria
Nota: 9.5

Essa é uma das formas mais comuns de armazenar informações em arquivos texto.