C programming has several in-build library functions to perform input and output tasks.
Two commonly used functions for I/O (Input/Output) are printf() and scanf().
The scanf() function reads formatted input from standard input (keyboard) whereas the printf() function sends formatted output to the standard output (screen).
Example #1: C Output
#include <stdio.h> //This is needed to run printf() function.
int main()
{
printf("C Programming"); //displays the content inside quotation
return 0;
}Output : C ProgrammingHow this program works?
- All valid C program must contain the main() function. The code execution begins from the start of main() function.
- The printf() is a library function to send formatted output to the screen. The printf() function is declared in "stdio.h" header file.
- Here, stdio.h is a header file (standard input output header file) and #include is a preprocessor directive to paste the code from the header file when necessary. When the compiler encounters printf() function and doesn't find stdio.h header file, compiler shows error.
- The return 0; statement is the "Exit status" of the program. In simple terms, program ends.
#2: C Integer Output
#include <stdio.h>
int main()
{
int testInteger = 5;
printf("Number = %d", testInteger);
return 0;
}Output
Number = 5
Inside the quotation of printf() function, there is a format string "%d" (for integer). If the format string matches the argument (testInteger in this case), it is displayed on the screen.
Example #3: C Integer Input/Output
#include <stdio.h>
int main()
{
int testInteger;
printf("Enter an integer: ");
scanf("%d",&testInteger);
printf("Number = %d",testInteger);
return 0;
}Output
Enter an integer: 4 Number = 4
The scanf() function reads formatted input from the keyboard. When user enters an integer, it is stored in variable testInteger. Note the '&' sign before testInteger; &testInteger gets the address of testInteger and the value is stored in that address
Example #4: C Floats Input/Output
#include <stdio.h>
int main()
{
float f;
printf("Enter a number: "); // %f format string is used in case of floats
scanf("%f",&f);
printf("Value = %f", f);
return 0;
}Output
Enter a number: 23.45 Value = 23.450000
The format string "%f" is used to read and display formatted in case of floats.
Example #5: C Character I/O
#include <stdio.h>
int main()
{
char var1;
printf("Enter a character: ");
scanf("%c",&var1);
printf("You entered %c.",var1);
return 0;
} Output
Enter a character: g You entered g.
Format string %c is used in case of character types.
Little bit on ASCII code
When a character is entered in the above program, the character itself is not stored. Instead a numeric value(ASCII value) is stored. And when we displayed that value using "%c" text format, the entered character is displayed.
Example #6: C ASCII Code
#include <stdio.h>
int main()
{
char var1;
printf("Enter a character: ");
scanf("%c",&var1);
// When %c text format is used, character is displayed in case of character types
printf("You entered %c.\n",var1);
// When %d text format is used, integer is displayed in case of character types
printf("ASCII value of %c is %d.", var1, var1);
return 0;
}Output
Enter a character: g You entered g. ASCII value of g is 103.
You can display a character if you know ASCII code of that character. This is shown by following example.
Example #7: C ASCII Code
#include <stdio.h>
int main()
{
int var1 = 69;
printf("Character having ASCII value 69 is %c.",var1);
return 0;
} Output
Character having ASCII value 69 is E.