Input or Ouput (I/O) in C language
Input and output is key operations in the software development. It helps to interact with user.
While dealing with input-output operations, two important streams comes into picture. These are:
- Standard Input (
stdin
): It is used for taking input from devices such as the keyboard as a data stream. - Standard Output (
stdout
): It is used for giving output to a device such as a monitor.
There are many built-in functions available in C to perform input-output operations.
Reading Character
getchar()
function can be used to read a single character from standard input (i.e keyboard).
It’s syntax is: variable_name = getchar();
Writing Character
putchar()
function is used to write characters, but one at a time to the standard output (i.e monitor).
It’s syntax is: putchar(variable_name);
#include<stdio.h>
int main()
{
char alphabet;
alphabet = getchar();
putchar(alphabet);
}
// output
A // type A
A // printed by program
Formatted Input
scanf()
reads the formatted input from the standard input (i.e keyboard) as per the format specified and store into the variable.
Its syntax is: scanf("format", arg1, arg2, ..., argN);
Formatted Output
printf()
is one of the output function which sends formatted output to the screen (or monitor).
int radius;
printf("Enter value of radius: ");
scanf("%d", &radius);
printf("Radius = %d\n", radius);
// output
Enter value of radius: 5
Radius = 5
Format Specifiers for I/O
Data Type | Format Specifier |
int |
%d |
char |
%c |
float |
%f |
double |
%lf |
short int |
%hd |
unsigned int |
%u |
long int |
%li |
long long int |
%lli |
unsigned long int |
%lu |
unsigned long long int |
%llu |
signed char |
%c |
unsigned char |
%c |
long double |
%Lf |
Example
#include<stdio.h>
int main()
{
int num1;
float num2, sum;
printf("Enter value of num1 and num2(float): ");
scanf("%d%f", &num1, &num2); // Taking multiple inputs
printf("You entered %d and %f\n", num1, num2);
sum = num1 + num2;
printf("The sum of %d and %f = %f\n", num1, num2, sum);
return 0;
}
// output
Enter value of num1 and num2(float): 10 15.5
You entered 10 and 15.500000
The sum of 10 and 15.500000 = 25.500000
But, you might want to have only two decimal places right?
Use %.2f
instead of %f
while printing (i.e in printf
).
int num1;
float num2, sum;
printf("Enter value of num1 and num2(float): ");
scanf("%d%f", &num1, &num2); // Taking multiple inputs
printf("You entered %d and %.2f\n", num1, num2);
sum = num1 + num2;
printf("The sum of %d and %.2f = %.2f\n", num1, num2, sum);
// output
Enter value of num1 and num2(float): 10 15.5
You entered 10 and 15.50
The sum of 10 and 15.50 = 25.50
Help me to improve Dhanu Sir.