aula 211

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

Dando continuidade ao estudo de manipulação de arquivos com a linguagem C, vamos aprender nesta aula como escrever texto em um arquivo com a função fputs().

Quando precisamos escrever uma frase ou um texto em um arquivo não precisamos escrever caracter por caracter, podemos escrever uma frase completa com a função fputs.

A função fputs recebe dois parâmetros: o vetor de caracteres que será escrito no arquivo (nossa string) e o ponteiro para o arquivo onde será salvo a string, como a seguir:

            // exemplo de uso da função fputs
            fputs(texto, file);

Agora podemos alterar o procedimento que desenvolvemos na aula anterior para ler várias frases do teclado e, enquanto o tamanho das frases for maior que 1, então escrevê-las no arquivo, assim:

void escrever(char f[]) {
    FILE *file = fopen(f, "w");
    char texto[500];

    if(file) {
        printf("Digite uma frase ou 1 caracter para finalizar:\n");
        scanf("%499[^\n]", texto);
        scanf("%c"); // limpa o ENTER que ficou no buffer do teclado
        while(strlen(texto) > 1){
            fputs(texto, file);
            fputc('\n', file);
            printf("Digite uma frase ou 1 caracter para finalizar:\n");
            scanf("%499[^\n]", texto);
            scanf("%c");
        }
        fclose(file);
    } else
        printf("\nERRO ao abrir arquivo!\n");
}

Há um detalhe importante no trecho de código acima. Se apenas lermos frases em sequência e as escrevermos no arquivo, teremos várias frases em sequência, sendo impossível distinguir onde termina uma e começa a outra. Lembre-se, programar é dizer ao computador TUDO que você quer que ele faça. Se queremos que cada frase fique em uma linha, então precisamos escrever no arquivo uma quebra de linha, assim:

            // escreve o texto digitado e, na sequência, insere uma quebra de linha
            fputs(texto, file);
            fputc('\n', file);

Código de exemplo completo em C para escrever strings em arquivo texto

/*
        Aula 211: Como escrever linhas de texto com a função fputs?

        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)
*/

void escrever(char f[]) {
    FILE *file = fopen(f, "w");
    char texto[500];

    if(file) {
        printf("Digite uma frase ou 1 caracter para finalizar:\n");
        scanf("%499[^\n]", texto);
        scanf("%c"); // limpa o ENTER que ficou no buffer do teclado
        while(strlen(texto) > 1){
            fputs(texto, file);
            fputc('\n', file);
            scanf("%499[^\n]", texto);
            scanf("%c");
        }
        fclose(file);
    } else
        printf("\nERRO ao abrir arquivo!\n");
}

int main() {

    char nome[] = {"conto.txt"};

    escrever(nome);

    return 0;
}

Deixe um comentário

dezessete − um =

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.