The input into a program and output from a program is the basic requirements of any useful program. For input from standard input device, i.e., keyboard, the function scanf () is used and for output to the standard output device, i.e., monitor, the function printf () is used. Both these functions can take any number of arguments. The first argument is the formatting string enclosed between double quotes and consists of conversion characters. For printf () function, the formatting string may also contain any text that needs to be displayed on the monitor along with the values of variables. For example, if we want to display the value of an integer variable n, we may write the code as
int n = 80;
printf( “%d” , n);
The first argument of printf ( ) is a string, which specifies the type of variable whose value is to be displayed. It consists of % symbol and character d, which is the conversion character for displaying integer type values. The output would be 80. However, if we wish to display as ‘Value of n = 80’, then the code of printf () function would be
printf(“Value of n = %d”, n);
The value of n would be displayed where its conversion character %d appears. For other types of variables, Table gives the conversion characters and the illustrations of codes. The escape characters are also part of first argument. Now, if the values of two variables n and m are desired to be displayed in two lines as given below
Value of n = 80
Value of m = 60
then the function printf () is coded as
int n= 80 , m = 60 ;
printf(“Value of n = %d\nValue of m = %d”, n, m);
Here “\n” is the escape character that will shift the values on its right to next line. We can also use two lines of code.
printf(“Value of n = %d\n”, n);
printf(“Value of m = %d\n”, m);
However, if the output is required in a single line with a space between the values, the following code May be used:
printf(“Value of n = %d\t Value of m = %d”, n, m);
The output would be as
value of n = 80 value of m = 60
The function scanf () takes the values from keyboard and puts it in the program. It, in fact, reads the values and places them in the memory spaces allocated to the respective variables at the time of their declaration in the program. So, the arguments are the formatting string and the addresses of variables.
The addresses are obtained by address-of-operator&. For example, the function scanf () for reading two values is given by
int n;
float p;
scanf (“%d, %f”, &n, &p);
The following program illustrates the above discussion:
#include <stdio.h> main() { int n; // int type float m ; // float type double Pi= 3.1415; // double type char ch ; char Str[] = "Dinesh Thakur"; // char type, string clrscr(); printf("Enter the values of n and m and ch :"); scanf("%d %f %c", &n, &m, &ch); //see use of address of operator printf("n = %d\tm = %f\t Pi= %lf\n", n, m, Pi); printf("ch = %c\tStr = %s\n", ch, Str); }
The use of “\t” in the above code sets spaces between output values. The expected output is as follows:
Explanation of the output: The values of n, m, and ch are obtained from keyboard. On clicking for execution of the program, the following line appears on the monitor:
Enter the values of n and m and ch:
At the end of line there will be a blinking cursor. Here, you type the value of n, give a space, type the value of m, again give a space, and then type the value of ch. The values typed are 60, 78 . 5 and H. Now the text line looks similar to the first line in the output. After typing, press ‘Enter key’. If you do not press ‘Enter key’, the computer will not proceed further. After pressing the ‘Enter key’, we get the second and third lines of output.