Different ways of performing input - output opeations in C
Input and output operations are performed using predefined library functions. These are classified into two types.
- Formatted Input / Output Functions
- Unformatted Input / Output Functions
1. Formatted Input / Output Functions
There are two formatted input/ouput functions.
- scanf() : used for obtaining formatted input.
- printf() : used for obtaining formatted output.
scanf() :
The scanf() function is used to read the values for variables from standard input device i.e., keyword.
Syntax : scanf(" control string ", address_list);Control String :
- Control string is enclosed within double quotes
- It specifies the type of values that are to be read from keyboard.
- Control string consists of fields specification written in the form % field specified.
Address_list :
It contains addresses of input/output variables preceded. The addresses are specified by preceding a variable by & operator.
Example : scanf("%d %f %c", &i, &a, &b);When user enters 10, 5.5 , z from keyboard, 10 is assigned to i, 5.5 is assigned to a, and z is assigned to b.
We can also specify field widths in field formats as % field width type specifier.
Example : scanf("%3d %2d", &a, &b);If we give input 500 and 10, then 500 is assigned to a and 10 is assigned to b.
It is not always advisable to use field width specifiers in scanf statements.
It may sometimes assign wrong values to variables
Example : scanf("%2d %3d", &a, &b);Here, if we give 5004 and 10 as input, then 50 is assigned to a and 04 to b. which is wrong assignment. hence, generally field widths are not used with scanf statement.
Field formats for different data types are given below
Format | Type of value |
---|---|
%d | Integer |
%f | Floating numbers |
%c | Character |
%ld | Long integer |
%u | Unsigned integer |
%lf | Double |
%s | String type |
%x | Hexadecimal |
%o | Octal |
%i | Decimal, hexadeciaml or octal |
%e | Floating point numbers in exponential form |
%g | Floating point numbers with trailing zeros |
The follwoing letters may be used as prefix for certain conversion characters.
- for short integers
- for long integers or double
- for long double
printf() :
printf() function is used to print result on monitor.
Example : printf("control string", arg1, arg2,...argn);Control String :
Control string can have,
- Format specifier given in the form % specifier.
- Escape sequence characters such as \t(tab), \n(new line), \b(blank) etc.
- It can have a string that must be printed on the standard o/p device, i.e monitor or console.
arg1, arg2,...argn are variables whose value must be printed on the monitor in the format specified in control string.
Examples :
1. printf("%d %c", num, ch);
2. printf("hello world");
3. printf("%d \n %c", num, ch);
In example 3, suppose num has value 5 and ch has value a then output will be printed as,
5,
A
The output is printed in two different lines because new line character has been used between %d and %c.
Unformatted Input/output Functions :
Different functions in this category are as follows
- getchar()
- putchar()
- gets()
- puts()
- getch()
- putch()
1. getchar() :
This function returns single character entered form keyboard. No arguments are required for this function. By calling this function we can read a string
Syntax : var = getchar(); var is an identifier of char type2. putchar(var) :
This function displays a single character on an output device.
3. gets() :
This function reads an input string
Syntax : gets(var); var is a character arrayExample : char name[50]; gets(name);This statement reads a string from keyboard.
4. puts(var :
This function displays string stored in var on output device.
5. getch()
6. putch()
program 1 : This program explains getchar() and putchar() functions.
#includeinput : Enter charactes from keyboard : abcdvoid main() { int i = 0; char ch[10]; do { printf("Enter characters from keyboard : "); i++; ch[i]=getchar(); } while(c[i]!=EOF); for(i=1;ch[i]!='\0'; i++) putchar(ch[i]); }
Output : abcd
program 2 : This program explains gets() and puts() functions.
#includeinput : Enter the string : Hellovoid main() { char a[25]; printf("Enter the string : "); gets(a); puts(a); }
Output : Hello
0 Comments