C fputs() function

C library function - fputs()

The fputs() function is used to copy string to the output stream at the current position. At the end of the string, the null character (/0) is not copied.


int fputs(const char *string, FILE *stream);


Name Description Required /Optional
str This is the variable in which the string will be stored. 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, fputs() shall return a non-negative number.
  • Otherwise, it shall return EOF, set an error indicator for the stream, and set errno to indicate the error.

Example: fputs() function

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


The string is:
C programming.C Exercises.

C Programming Code Editor:

Previous C Programming: C fputc()
Next C Programming: C getc()

Follow us on Facebook and Twitter for latest update.

C Programming: Tips of the Day

Reading a string with scanf :

An array "decays" into a pointer to its first element, so scanf("%s", string) is equivalent to scanf("%s", &string[0]). On the other hand, scanf("%s", &string) passes a pointer-to-char[256], but it points to the same place.

Then scanf, when processing the tail of its argument list, will try to pull out a char *. That's the Right Thing when you've passed in string or &string[0], but when you've passed in &string you're depending on something that the language standard doesn't guarantee, namely that the pointers &string and &string[0] -- pointers to objects of different types and sizes that start at the same place -- are represented the same way.

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