C Input Output (I/O)

In this tutorial, you will learn about the C printf() function to display output on the screen and the C scanf() function to take input from the user.


C Output

In C programming, printf() is one of the most commonly used functions to print the output to the console. This function sends the formatted output to the screen. For example,

Example 1: C Output

#include <stdio.h> 
int main()
{ 
// Prints the string inside quotations to the console
printf("C Output");
return 0;
}

Output

C Output

How does the above program work?

  • Every valid C program should have main() function which works as the entry point of a program.
  • The printf() is a library function which prints the formatted output to the screen. It prints the string which is specified inside the double quotation.
  • In order to use printf() function, we need to include one header file called stdio.h. We have included it in the very first line of the program as #include<stdio.h>.
  • The return 0; statement inside the main() function is the “Exit status” of the program. It’s optional to use.

Example 2: Integer Output

#include <stdio.h>
int main()
{
   int intvalue = 10;
   printf("Integer Output = %d", intvalue);
   return 0;
}

Output

Integer Output = 10

In the above example, we have used %d format specifier to print int (integer) type value. Here, the %d inside the double quotation is replaced by the value of intvalue.

Example 3: Print Character

#include <stdio.h>
int main()
{
     char chr = 'c'; 
     printf("Character Output = %c", chr); 
     return 0;
}

Output

Character Output = c

In order to print character value, we use %c format specifier.

Example 4: Print float and double

#include <stdio.h>
int main()
{
     float value1 = 10.5;
     double value2 = 15.4;

     printf("Float Output = %f\n", value1);
     printf("Double Output = %lf", value2);
     return 0;
}

Output

Float Output = 10.5
Double Output = 15.4

To print float value, we use %f format specifier. Similarly to print double value, we use %lf format specifier.


C Input

In C programming, scanf() if the most commonly used function which helps to take input from the user. This function reads formatted input from the standard input device such as keyboards. For example:

Example 1: Integer Input/Output

#include <stdio.h>
int main()
{
int intvalue;
printf("Enter an integer: ");
scanf("%d", &intvalue); 
printf("Integer you have entered is = %d", intvalue);
return 0;
}

Output

Enter an integer: 10
Integer you have entered is = 10

In the above example, we have used %d format specifier inside the scanf() function to take the int (integer) type value from the user.

Example 2: Character I/O

#include <stdio.h>
int main()
{
char chr;
printf("Enter a character: ");
scanf("%c",&chr); 
printf("You have entered = %c", chr); 
return 0;
}

Output

Enter a character: x
You have entered = x

In the above program, we have used %c format specifier to get the character value from the user. However internally, C does not store the value as a character, it converts the character to its corresponding ASCII value which is an integer and store.

While printing the output using the %c format specifier, it converts the ASCII value to its corresponding character value and prints on the screen. By any chance, you provide %d format specifier, it’s ASCII value will be printed.

Example 3: ASCII Value

#include <stdio.h>
int main()
{
char chr;
printf("Enter a character: ");
scanf("%c", &chr);

// When %c is used, a character is displayed
printf("You have entered = %c\n",chr);

// When %d is used, ASCII value is displayed
printf("ASCII value is = %d", chr); 
return 0;
}

Output

Enter a character: a
You have entered = a
ASCII value is = 065

Example 4: Float and Double I/O

#include <stdio.h>
int main()
{
float num1;
double num2;

printf("Enter a number: ");
scanf("%f", &num1);
printf("Enter another number: ");
scanf("%lf", &num2);

printf("num1 = %f\n", num1);
printf("num2 = %lf", num2);

return 0;
}

Output

Enter a number: 10.2
Enter another number: 15.8
num1 = 10.2
num2 = 15.8

We use %f and %lf format specifier to take input of float and double value respectively.

Example 5: Taking multiple values as input

#include <stdio.h>
int main()
{
int a;
float b;

printf("Enter integer and then a character: ");

// Taking multiple inputs
scanf("%d%c", &a, &chr);

printf("You have entered %d and %c", a, chr); 
return 0;
}

Output

Enter integer and then a character: 10 a
You have entered 10 and a

Please get connected & share!

Advertisement