[go: up one dir, main page]

0% found this document useful (0 votes)
27 views19 pages

Week3 Lec5 6 Formatted Input Output Ch3 Fa24

Uploaded by

menkahotwani446
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views19 pages

Week3 Lec5 6 Formatted Input Output Ch3 Fa24

Uploaded by

menkahotwani446
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

CSC1103: Fundamentals of Programming [ C ]

Week 3

Lecture 5-6

Fall 2024
Sheikh Usama Khalid
Department of Computer Science
100 Building, Clifton, Room 301
Usama.khalid@szabist.edu.pk
Lecture Plan
• Chapter 3: Formatted Input / Output
Fundamentals of Programming

• Programming Review
Fundamentals of Programming

Chapter 3: Formatted Input / Output


Example: Printing a Message
/* Illustrates comments, strings, and the printf
function */
Fundamentals of Programming

#include <stdio.h>
int main(void)
{
printf("To C, or not to C: ");
printf("that is the question.\n");
return 0;
}
The printf Function
• The first argument in a call of printf is a string, which may contain both
ordinary characters and conversion specifications, which begin with the %
symbol.
Fundamentals of Programming

• Ordinary characters are printed as they appear in the string; conversion


specifications are matched one-by-one with the remaining arguments in the
call of printf:

int i, j;
float x, y;
printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y);
The printf Function
• Warning: C compilers don’t check that the number of conversion specifications
in a format string matches the number of output items:
Fundamentals of Programming

printf("%d %d\n", i); /* too few items */


printf("%d\n", i, j); /* too many items */

• Furthermore, there’s no check that a conversion specification is appropriate


for the type of item being printed:
printf("%f %d\n", i, x);
Conversion Specifications
A conversion specification has the form %-m.pX
Fundamentals of Programming

• m (optional) specifies the minimum field width.

• - (optional) indicates left justification within the field; the default is


right justification.

• .p (optional) specifies:

• Number of digits after the decimal point (for a floating point number)
• Minimum number of digits to print (for an integer)
Conversion Specifications
• X is one of the following letters:
Fundamentals of Programming

d - decimal signed integer


e - exponential floating point
f - fixed decimal floating point
g - whichever of e or f produces a shorter string

• This is not a complete description of conversion specifications.


printf Example
• Sample program:
#include <stdio.h>
int main(void) {
Fundamentals of Programming

int i;
float f;
i = 40;
f = 839.21;
printf("|%d|%5d|%-5d|%5.3d|\n", i, i, i, i);
printf("|%10.3f|%10.3e|%-10g|\n", f, f, f);
return 0;
}

• Output:
|40| 40|40 | 040|
| 839.210| 8.392e+02|839.21 |
Escape Sequences
• String literals sometimes need to contain control characters (such as tab and
newline) or characters that have a special meaning in C (such as "). These
characters can be represented by escape sequences.
Fundamentals of Programming

• Character escapes consist of \ followed by one character:


alert (bell) \a backslash \\
backspace \b question mark \?
form feed \f single quote \'
new-line \n double quote \"
carriage return \r
horizontal tab \t
vertical tab \v
Escape Sequences
• Writing the \a escape causes a beep.

• Writing the \n escape causes the cursor to move to the beginning of the next
Fundamentals of Programming

line.

• Writing the \t escape causes the cursor to move to the next tab stop.

• The \" escape allows us to print the double quote character: printf("\"Hello!\"");

• String literals may contain any number of escape sequences:


printf("Item\tUnit\tPurchase\n\tPrice\tDate\n");
The scanf Function
• scanf requires a format string, followed by variables into which input is to be
stored. In most cases, each variable must be preceded by the symbol &.
Fundamentals of Programming

• Warning: Forgetting to put the & symbol in front of a variable will have
unpredictable — and possibly disastrous — results.
The scanf Function
• scanf format strings are similar to printf format strings, but usually contain only
conversion specifications:
Fundamentals of Programming

int i, j;
float x, y;
scanf("%d%d%f%f", &i, &j, &x, &y);

• Note: When used with scanf, the e, f, and g conversions are identical: each
causes scanf to read a floating-point number. A sign, exponent, and decimal
point may or may not be present.
How scanf works?
scanf ignores white-space characters (blanks, tabs, and new-line characters)
when searching for an input item. If scanf is used in the following way:
Fundamentals of Programming

scanf("%d%d%f%f", &i, &j, &x, &y);

the input could be split over several lines:


1
-20 .3
-4.0e3

or put on a single line:


1 -20 .3 -4.0e3
How scanf Works
• When scanf encounters a character that can’t be part of the current item, this
character is read again during the scanning of the next input item or during the
next call of scanf. Using the same call of scanf as above:
Fundamentals of Programming

scanf("%d%d%f%f", &i, &j, &x, &y);

If the input is
1-20.3-4.0e3z

Then i is assigned the value 1,


j is –20,
x is .3, and
y is –4.0e3.
The scanf Format String
• A scanf format string may contain ordinary characters in addition to conversion
specifications.
Fundamentals of Programming

• A non-white-space character in a format string must match the next input


character or scanf terminates without reading further. (The non-matching
character can be read by a later call of scanf.) The call
scanf("%d/%d/%d", &month, &day, &year);

will read
5/ 28/ 2002

but not
5 / 28 / 2002
The scanf Format String
• A white-space character in a format string matches zero or more white-space
characters in the input. The call
Fundamentals of Programming

scanf("%d /%d /%d", &month, &day, &year);

will read
5 / 28 / 2002

and all similar inputs, regardless of the amount of space before and after each /
symbol.
The scanf Format String
• Warning: Putting a new-line character at the end of a scanf format string is
usually a bad idea:
Fundamentals of Programming

scanf("%d\n", &i);

• After reading an integer, scanf skips white-space characters until it finds a


non-white-space character. An interactive program will hang until the user enters
a nonblank character.
Programming Review (Updated)
• P1: Print “hello world”

• P2: Declare, initialize and print a variable x.

• P3: Take an integer input from user. [ Use scanf() function ]


Fundamentals of Programming

• P4: Take an integer input n and print n, its square (n2) and its cube (n3).

• P5: Calculate and print the surface area and volume for a box with dimensions (length,
width, and height) entered by the user. [ Use float data type for all variables ]

• P6: Take gross salary of an employee (e.g. 50000) and tax rate (e.g. 5.5) as input and
print net salary as output.

You might also like