It is very easy to use unformatted input/output functions as discussed. We can read and display only characters not numbers using unformatted functions. Using formatted input/output functions, we can read integers, floating point number and characters. The formatted input function is scanf() and formatted output functions is printf().
Scanf()
Syntax
int scanf(“format string”, &var1, &var2, &var3,……..&varn);
This function scanf() is used to read any type of data such as int, char, float, double and even string from the keyboard. It accepts the following two parameters:
• format string consists of one or more format specifires starts with % symbol.
• &var1, &var2, &var3, …., &varn represents the list of variables. Here, symbol ‘&’ refers to the address of the variable. In the memory locations identified by these addresses, the respective values are stored.
Return Type int: The function returns an integer value. This integer value is the number of item that have been read successfully using the keyboard. But, we rarely use this return value in our programs.
The various format specifiers along with the associated meaning are shown in the following table:
Note: Do not use any escape sequences such as \t, \n etc. in scanf().
For example: Consider the following statement:
scanf(“%d\n”,&a);
In the above statement, remove ‘\n’, otherwise it may give wrong output.
Now, let us see, some more ways of data reading using scanf() function are given below:
Note:
• To read a string with space gets() function will used in place of scanf().
• The “scanf(“%[^\n]s”,str);” function read and stored all the character untill user will not press enter key.
Formatted Output Function
Scanf()
Syntax
int scanf(“format string”, &var1, &var2, &var3,……..&varn);
This function scanf() is used to read any type of data such as int, char, float, double and even string from the keyboard. It accepts the following two parameters:
• format string consists of one or more format specifires starts with % symbol.
• &var1, &var2, &var3, …., &varn represents the list of variables. Here, symbol ‘&’ refers to the address of the variable. In the memory locations identified by these addresses, the respective values are stored.
Return Type int: The function returns an integer value. This integer value is the number of item that have been read successfully using the keyboard. But, we rarely use this return value in our programs.
The various format specifiers along with the associated meaning are shown in the following table:
Data Type
|
Format Specifier
|
Meaning
|
int
|
%d
%o
%x
%i
%u
%h
|
Read a decimal integer value
Read an octal value
Read a hexadecimal value
Read a decimal, octal or hexadecimal value
Read an unsigned integer value
Read a short integer value
|
float
|
%e
%f
%g
|
Read a floating point number
Read a floating point number
Read a floating point number
|
char
|
%c
%s
|
Read a character
Read a string (series of character)
|
double
|
%f
|
Read a long floating point number or double
|
long int
|
%ld
|
Read a long integer value
|
The following table shows the way the user has to enter the values from the keyboard:
Input statement
|
Entering value
|
Input way
|
scanf(“%d%d%d”,&a,&b,&c);
|
3 integer value
|
10 20 30
Where, a=10
b=20 c=30
|
scanf(“%d,%d,%d”,&a,&b,&c);
|
3 integer value
|
10,20,30
Where, a=10
b=20 c=30
|
scanf(“%f”,&a);
|
1 floating point value
|
787.35
Where, a=787.3.5
|
scanf(“%c”,&a);
|
1 character value
|
P
Where, a=p
|
scanf(“%f,%d,%c”,&a,&b,&c);
|
1 floating point value
1 integer value
1 character value
|
787.35 10 P
Where, a=787.35, b=10, c=P
|
scanf(“%d-%d-%d”,&a,&b,&c);
|
3 integer values separated by ‘-‘ (hyphen)
sign
|
10-20-30
Where, a=10, b=20, c=30
|
scanf(“%d%d%d”,&a,&b,&c);
|
3 integer values separated by ‘/’ (slash)
symbol
|
10/20/30
Where, a=10, b=20, c=30
|
Note: Do not use any escape sequences such as \t, \n etc. in scanf().
For example: Consider the following statement:
scanf(“%d\n”,&a);
In the above statement, remove ‘\n’, otherwise it may give wrong output.
Now, let us see, some more ways of data reading using scanf() function are given below:
Input statement
|
Entering value
|
Input way
|
scanf(“%2d%2d%2d”,&a,&b,&c);
|
3 integer values
|
1 2 3
Where, a=1 b=2 c=3
|
11 22 33
Where, a=11 b=22 c=33
|
||
102030
Where, a=10 b=20 c=30
|
||
102 030 4
Where, a=10 b=2 c=3
The remaining two digits 0 and 4 are
ignored or can be read by a subsequent scanf()
|
||
scanf(“%12s”,&str);
|
1 string
|
.Programming
Where, str=.Programming
|
scanf(“%[^\n]s”,str);
|
Input the string till the end of line
|
Wlecome! To the dotprogramming
Where, str= Wlecome! To the dotprogramming
|
• To read a string with space gets() function will used in place of scanf().
• The “scanf(“%[^\n]s”,str);” function read and stored all the character untill user will not press enter key.
Formatted Output Function