putc  função

Protótipo

int putc (int c, FILE * fluxo);

Descrição

Escreve o caractere c (convertido para unsigned char) no fluxo de saída.

A função fputc é equivalente a esta, mas é normalmente implementada como uma função. putc pode ser implementado como um macro.

Parâmetros

Como putc pode ser implementada como um macro, os parâmetros deve ser expressões sem efeitos colaterais. Por exemplo, não é recomendável utilizar putc('a', fopen("arquivo.txt", "r")), pois isso pode causar múltiplas chamadas a função fopen (sem contar o fato de não ser possível fechar o arquivo aberto utilizando fclose, devido a não ser guardada uma referência). A mesma coisa é válida para putc(getchar(), stdout) – pode acontecer o caso de a expressão getchar() ser chamada múltiplas vezes, não ocorrendo a funcionalidade esperada. Neste caso, utilize variáveis para armazenar o valor da chamada da função e utilize a variável como argumento.

c - Caractere a ser escrito. É convertido para unsigned char antes de ser escrito.

fluxo - Ponteiro para um objeto FILE que será utilizado como saída.

Valor de retorno

Em caso de sucesso, a função retorna o próprio caractere escrito. O valor retornado é um unsigned char, convertido para int.

Se ocorreu um erro de escrita, a função retorna EOF e o indicador de erro é setado (ferror).

Exemplo
#include <stdio.h>

int main() {
    FILE* arquivo = fopen("arquivo.txt", "w");
    if(arquivo == NULL) {
        fprintf(stderr, "Erro ao abrir o arquivo.txt.");
        return 1;
    }

    int caractere;
    for(caractere = 33; caractere <= 126; caractere++) {
        putc(caractere, arquivo);
    }

    fclose(arquivo);

    return 0;
}

Conteúdo do arquivo.txt:

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~