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;
} |
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;
} |
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