Return values of printf() and scanf() in C/C++
What values do the printf() and scanf() functions return ?
printf() : It returns total number of Characters Printed, Or negative value if an output error or an encoding error
Example 1: The printf() function in the code written below returns 6. As 'CODING' contains 6 characters.
// C/C++ program to demonstrate return value
// of printf()
#include <stdio.h>
int main()
{
char st[] = "CODING";
printf("While printing ");
printf(", the value returned by printf() is : %d",
printf("%s", st));
return 0;
}
Output
While printing CODING, the value returned by printf() is : 6
Example 2: The printf() function in the code written below returns 9. As '123456789' contains 9 characters.
// C/C++ program to demonstrate return value
// of printf()
#include <stdio.h>
int main()
{
long int n = 123456789;
printf("While printing ");
printf(", the value returned by printf() is : %d",
printf("%ld", n));
return 0;
}
Output
While printing 123456789, the value returned by printf() is : 9
scanf() : It returns total number of Inputs Scanned successfully, or EOF if input failure occurs before the first receiving argument was assigned.
Example 1: The first scanf() function in the code written below returns 1, as it is scanning 1 item. Similarly second scanf() returns 2 as it is scanning 2 inputs and third scanf() returns 3 as it is scanning 3 inputs.
// C/C++ program to demonstrate return value
// of printf()
#include <stdio.h>
int main()
{
char a[100], b[100], c[100];
// scanf() with one input
printf("\n First scanf() returns : %d",
scanf("%s", a));
// scanf() with two inputs
printf("\n Second scanf() returns : %d",
scanf("%s%s", a, b));
// scanf() with three inputs
printf("\n Third scanf() returns : %d",
scanf("%s%s%s", a, b, c));
return 0;
}
Input: Hey! welcome to geeks for geeks Output: First scanf() returns : 1 Second scanf() returns : 2 Third scanf() returns : 3