This blog is under construction

Saturday, 28 December 2013

scanf() and printf() functions

Scanf() function:
It is used to read input from the keyboard.

int scanf(const char *format, ...);

For better understanding, lets rewrite the above as follows.
scanf("format specifiers", &v1, &v2, &v3);

v1, v2 and v3 are the input variables whose value needs to read from the keyboard.  We need to pass address of the variable as argument to store the input values from keyboard. Here, ampersand(&) represents address.

&v1 - address of variable v1
Input value for v1 will be stored at address of variable v1

Format specifier can be any of the following
%u  - unsigned int
%d  - int
%x  - hexadecimal
%o  - octal
%f  - float
%lf - double
%c  - char
%s  - string

scanf("%d", &v1); - inputs integer value
scanf("%x", &v2); - inputs hexadecimal value
scanf("%f", &v3); - inputs float value


printf() function:
It prints the given data on the output screen.

printf("format specifiers", v1, v2,..vn);
Here, format specifier can be any of the above mentioned.  Whereas, v1, v2..vn are the values of the variables which needs to be printed on the output screen.

printf("%d", 10);              - prints 10 on the output screen
printf("%f", num);            - prints the float value in variable num on the output screen
printf("%d and %d", a, b); - prints the value of the integers a and b on the output screen.

Suppose, if the value of a is 10 and the value of b is 20.  Then, the output for the below statement would be 10 and 20
printf("%d and %d", a, b);


Below is an example C program using scanf( ) and printf( ) functions.
 
  #include <stdio.h>
  int main() {
        /* declarations */
        int integer;
        unsigned int uint;
        float flt;
        double dbl;
        char str[32];

        /* input data from user */
        printf("Enter an integer: ");
        scanf("%d", &integer); // inputs integer from keyboard
        printf("Enter an unsigned integer: ");
        scanf("%u", &uint); // inputs unsigned int from keyboard
        printf("Enter a float value: ");
        scanf("%f", &flt); // inputs float value from stdin(keyboard)
        printf("Enter a double value: ");
        scanf("%lf", &dbl); // inputs double value
        printf("Enter a string:");
        scanf("%s", str); // inputs string

        /* print the result on the output screen */
        printf("\nResult:\n");
        printf("Value of integer: %d\n", integer);
        printf("Value of unsigned integer: %u\n", uint);
        printf("Value of float: %f\n", flt);
        printf("Value of double: %lf\n", dbl);
        printf("Value of string: %s\n", str);
        return 0;
  }


  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  Enter an integer: -234324
  Enter an unsigned integer: 1000
  Enter a float value: 10.345
  Enter a double value: 999.234234
  Enter a string:helloworld

  Result:
  Value of integer: -234324
  Value of unsigned integer: 1000
  Value of float: 10.345000
  Value of double: 999.234234
  Value of string: helloworld



1 comment:

  1. What will happen if i give "Hello World " with scanf() function .It will print Hello only.

    ReplyDelete