Inputing Integer Number
The field specification for reading an integer number is:%wd
the percent sign(%) indicates that a conversion specification follows. W is an integer number,that specifies the field width of the number to be read and d known as data type character, indicates that the number to be read i in
integer mode.
Example: scanf("%2d %5d",&num1,&num2);
data line: 60 13456
the value 60 is assigned to num1 and 13456 to num2.Input data item must be separated by spaces,tab or new line.Punctuation mark do not count a separator.Various input format ting options for reading integers are experimented with in the program.
Program:
/*Reading integer number*/
main()
{
int a,b,c,m,n;
int i,j,k;
printf("enter three integer numbers \n");
scanf("%d%*d%d",&a,&b,&c);
printf("%d%d%d\n\n",a,b,c);
printf("enter two 4-integer numbers \n");
scanf("%d%4d",&m,&n);
printf("%d%d\n\n",m,n);
printf("enter two integer numbers \n");
scanf("%d%*d%d",&a,&m);
printf("%d%d%d\n\n",a,m);
printf("enter a nine digit numbers \n");
scanf("%3d%4d%3d",&i,&j,&k);
printf("%d%d%d\n\n",i,j,k);
printf("enter two three digits \n");
scanf("%d%*d%d",&m,&n);
printf("%d%d%d\n\n",m,n);
}
Output: enter three numbers
1 2 3
1 3 -3577
enter two 4-digit numbers
2345 6417
23 45
enter two integers
44 66
4321 44
enter a nine digit number
123456789
66 1234 567
enter two three digit numbers
123 456
89 123
Inputting Real Number
Unlike integer numbers,the field width of real numbers s not to be specified and therefore scanf reads real numbers using the simple specifications %f for both the notations,namely decimal point and exponential notation.
Example: scanf(%f%f%f",&x,&y,&z);
input data
475.89 43.21e-1 678
will assign the value 475.89 to x,4.321 to y and 678.0 to z. The input field specifications may be separated by an arbitrary blank spaces. If the number to be read is of double type ,then the pecification should be lf% instead
of %f. A number may be skipped using %*f.
Program:
/*Reading of real numbers */
main()
{
float x,y;
double p,q;
printf("values of x and y:");
scanf("%f\n%e",&x,&y);
printf("\n");
printf("x=%f \n y=%f\n\n",x,y);
printf("values of p and q:");
scanf("%lf%lf",&p,&q);
printf("\n p=%lf \n q=%e",p,q);
printf("\n\n p=%12lf \n p=%12e",p,q);
}
Output: values of x and y:12.3456 17.5e-2
x=12.345600
y=0.175000
values of p and q: 4.14285178 18.5678901234567890
p=4.14285178
q=1.856789012346e+00
Inputting Character Strings
Single character can be read from the terminal using the getchar function .The same can be achieved using the scanf function also. In addition,a function can input strings contain ing more than one character. Following are the specifications for reading character strings: %ws or %wc
Program: /* Reading of strings using %wc and %ws */
main()
{
int num;
char name1[15],name2[15],name3[15];
printf("enter serial number and name one \n");
scanf("%d %15c",&num,&name1);
printf("%d %15s\n\n",num,name1);
printf("enter serial number and name two \n");
scanf("%d %s",&num,&name2);
printf("%d %15s\n\n",num,name2);
printf("enter serial number and name three \n");
scanf("%d %15s",&num,&name3);
printf("%d %15s\n\n",num,name3);
}
Output: enter serial number and name one
1 123456789012345
1 123456789012345r
enter serial number and name two
2 New York
2 New
enter serial number and name three
2 York
enter serial number and name one
1 123456789012
1 123456789012 r
enter serial number and name two
2 New-York
2 New-York
enter serial number and name three
3 London
In the above program,the specification %s terminates reading at the encounter of a blank space.Therefore,name2 has read only the first part of " New York" and the second part is automatically assigned to name3.However,during the second run,the string "New York" is correctly to name2.
No comments:
Post a Comment