What is the difference between printf, sprintf and fprintf?
printf: printf function is used to print character stream of data on stdout console.
Syntax :
printf(const char* str, ...);
Example :
C
// simple print on stdout #include <stdio.h> int main() { printf ( "hello Beginnerquiz" ); return 0; } |
Output
hello Beginnerquiz
sprintf: String print function instead of printing on console store it on char buffer which is specified in sprintf.
Syntax:
sprintf(char *str, const char *string,...);
Example :
C
// Example program to demonstrate sprintf() #include <stdio.h> int main() { char buffer[50]; int a = 10, b = 20, c; c = a + b; sprintf (buffer, "Sum of %d and %d is %d" , a, b, c); // The string "sum of 10 and 20 is 30" is stored // into buffer instead of printing on stdout printf ( "%s" , buffer); return 0; } |
Output
Sum of 10 and 20 is 30
fprintf: fprintf is used to print the string content in file but not on the stdout console.
fprintf(FILE *fptr, const char *str, ...);
Example :
C
#include <stdio.h> int main() { int i, n = 2; char str[50]; // open file sample.txt in write mode FILE * fptr = fopen ( "sample.txt" , "w" ); if (fptr == NULL) { printf ( "Could not open file" ); return 0; } for (i = 0; i < n; i++) { puts ( "Enter a name" ); gets (str); fprintf (fptr, "%d.%s\n" , i, str); } fclose (fptr); return 0; } |
Input:
Enter a name w3wiki Enter a name BeginnerQuiz
Output :
0. w3wiki 1. BeginnerQuiz
Thank you for reading, i will soon update with scanf, fscanf, sscanf keep tuned.