C fputc() function

C library function - fputc()

The fputc() function is used to write the byte specified by c to the output stream pointed to by stream, at the position indicated by the associated file-position indicator for the stream (if defined), and shall advance the indicator appropriately.


int fputc(int c, FILE *stream)


Name Description Required /Optional
c This is the character to be written. This is passed as its int promotion. Required
stream Identifies an address for a file descriptor, which is an area of memory associated with an input or output stream. Required

Return value

  • Upon successful completion, fputc() shall return the value it has written.
  • Otherwise, it shall return EOF, the error indicator for the stream shall be set, and errno shall be set to indicate the error.

Example: fputc() function

#include <stdio.h>
int main () {
   FILE *fp;
   int ch;
   char string[100];
   fp = fopen("test.txt", "w+");
   for( ch = 65 ; ch <= 122; ch++ ) {
      fputc(ch, fp);
   printf("The string is:\n%s",string);
   return 0;


The string is:

Example: Write the contents of buffer to a file

#include <stdio.h>
#define ALPHA  6
int main(void)
  FILE * fp;
  int i;
  int ch;
  char string[6];
  char buffer[ALPHA + 1] = "aeiou";
  if (( fp = fopen("test.txt", "w"))!= NULL )
    /* Put buffer into file */
    for ( i = 0; ( i < sizeof(buffer) ) &&
           ((ch = fputc( buffer[i], fp)) != EOF ); ++i );
   perror( "Error opening test.txt" );
   printf("The string is: %s",string);
   return 0;


The string is: aeiou

C Programming Code Editor:

Previous C Programming: C fgets()
Next C Programming: C fputs()

Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

What's an object file in C?

An object file is the real output from the compilation phase. It's mostly machine code, but has info that allows a linker to see what symbols are in it as well as symbols it requires in order to work. (For reference, "symbols" are basically names of global objects, functions, etc.)

A linker takes all these object files and combines them to form one executable (assuming that it can, i.e.: that there aren't any duplicate or undefined symbols). A lot of compilers will do this for you (read: they run the linker on their own) if you don't tell them to "just compile" using command-line options. (-c is a common "just compile; don't link" option.)

Ref : https://bit.ly/3CbzF8M