# fputc, putc

From cppreference.com
< c‎ | io

Defined in header `<stdio.h>` |  |
int fputc( int ch, FILE *stream ); |  |
int putc( int ch, FILE *stream ); |  |

Writes a character `ch` to the given output stream `stream`. putc() may be implemented as a macro and evaluate `stream` more than once, so the corresponding argument should never be an expression with side effects.

Internally, the character is converted to unsigned char just before being written.

### Parameters

ch | - | character to be written
stream | - | output stream

### Return value

On success, returns the written character.

On failure, returns EOF and sets the error indicator (see ferror()) on `stream`.

### Example

putc with error checking

Run this code

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
        int ret_code = 0;
        for (char c = 'a'; (ret_code != EOF) && (c != 'z'); c++)
            ret_code = putc(c, stdout);

        /* Test whether EOF was reached. */
        if (ret_code == EOF)
           if (ferror(stdout))
           {
              perror("putc()");
              fprintf(stderr,"putc() failed in file %s at line # %d\n", __FILE__,__LINE__-7);
              exit(EXIT_FAILURE);
           }
        putc('\n', stdout);

        return EXIT_SUCCESS;
    }

Output:

    abcdefghijklmnopqrstuvwxy

### References

- C11 standard (ISO/IEC 9899:2011):

  - 7.21.7.3 The fputc function (p: 331)

  - 7.21.7.7 The putc function (p: 333)

- C99 standard (ISO/IEC 9899:1999):

  - 7.19.7.3 The fputc function (p: 297)

  - 7.19.7.8 The putc function (p: 299)

- C89/C90 standard (ISO/IEC 9899:1990):

  - 4.9.7.3 The fputc function

  - 4.9.7.8 The putc function

### See also

putchar | writes a character to `stdout` (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/io/fputc&oldid=85076"