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("%d", 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
    


My Personal Notes arrow_drop_up

Improved By : towards_perfection




Practice Tags :

Recommended Posts:



1.6 Average Difficulty : 1.6/5.0
Based on 85 vote(s)






User Actions