Download presentation
Presentation is loading. Please wait.
1
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Fall 2018 Lecture 5: Basic variable output with printf() Basic variable input with scanf()
2
ECE Application Programming: Lecture 5
Lecture outline Announcements/reminders Program 2 due Friday, 9/21 Review Operators Basic variable output with printf() Today’s lecture printf() examples scanf() 6/5/2019 ECE Application Programming: Lecture 5
3
Review: Arithmetic Operations
Operator Addition + Subtraction - Multiplication * Division / Modulus Division (Remainder) % 6/5/2019 ECE Application Programming: Lecture 5
4
Review: printf() basics
To print variables (or constants), insert %<type> in your printf() format string %c: single character %d or %i: signed decimal integer %f: float; %lf: double Prints 6 digits after decimal point by default To control # digits, use precision "%.4lf" prints with 4 digits (4th digit rounds) "%.0lf" prints with 0 digits (round to nearest integer) Each %<type> must correspond to a variable or constant that follows printf("a=%.3f, b=%.2f", a, b); 6/5/2019 ECE Application Programming: Lecture 6
5
ECE Application Programming: Lecture 5
printf() example float a=67.49,b= ; printf("hello %f there %f\n",a,b); printf("%f%f%f%f\n",a,a,b,b); printf("a=%.2f, b=%.1f",a,b); printf("Cool huh?\n"); Printed: hello there a=67.49, b=10.0Cool huh? 6/5/2019 ECE Application Programming: Lecture 5
6
ECE Application Programming: Lecture 5
printf() details Detailed slides on printf() follow Skip these if you don’t want to go overboard with the full details of how the function works 6/5/2019 ECE Application Programming: Lecture 5
7
ECE Application Programming: Lecture 5
02/07/2005 printf() Documentation info: int printf(const char *format [,argument] ...) Type of value returned Name of function ( ) indicate printf is a function First arg type and formal name (required, since no brackets) next argument type and name (in this case it may be any simple type) [ ] indicate optional arguments … indicates previous argument repeated zero or more times 6/5/2019 ECE Application Programming: Lecture 5 (c) 2005, P. H. Viall
8
ECE Application Programming: Lecture 5
printf() int printf(const char *format [,argument] ...) Type of value returned (int in this case) All functions return at most one value. The type void is used to indicate a function returns no value There is no requirement to use the value returned. The printf() function returns the number of characters printed (including spaces); returns negative value if error occurs. 6/5/2019 ECE Application Programming: Lecture 5
9
ECE Application Programming: Lecture 5
printf() int printf(const char *format [,argument] ...) Name of function; printf( ) in this case A function name is ALWAYS followed by a set of (), even if the function takes no arguments 6/5/2019 ECE Application Programming: Lecture 5
10
ECE Application Programming: Lecture 5
printf() int printf(const char *format [,argument] ...) Type (const char *) and name (format) of first argument For the moment, const char * can be thought of as a series of characters enclosed in double quotes The name format may be thought of as a code indicating how the arguments are to be interpreted, and how the output should look. 6/5/2019 ECE Application Programming: Lecture 5
11
ECE Application Programming: Lecture 5
printf() int printf(const char *format [,argument] ...) zero of more optional arguments, each preceded by a comma zero because of the … optional because of the [ ] 6/5/2019 ECE Application Programming: Lecture 5
12
ECE Application Programming: Lecture 5
Example: printf() Show the output from each programs(assume #include <stdio.h> for all) void main() { int i=2, j=3, k, m; k = j * i; m = i + j; printf("%d %d %d %d\n", i, j, k, m); } double f, g; f = 1.0 / 4.0; g = f * 20; printf("f = %lf,\ng = %.2lf\n", f, g); int a = 5, b = 2; printf("Output%doesn't%dmake%dsense", a, b, a + b); 6/5/2019 ECE Application Programming: Lecture 5
13
ECE Application Programming: Lecture 5
Example solution void main() { int i=2, j=3, k, m; k = j * i; k = 2 * 3 = 6 m = i + j; m = = 5 printf("%d %d %d %d\n", i, j, k, m); } Output: 6/5/2019 ECE Application Programming: Lecture 5
14
Example solution (cont.)
void main() { double f, g; f = 1.0 / 4.0; f = 0.25 g = f * 20; g = 0.25 * 20 = 5 printf("f = %lf,\ng = %.2lf\n", f, g); } Output: f = , g = 5.00 (remember, 6 places after decimal point printed by default with floating-point data) 6/5/2019 ECE Application Programming: Lecture 5
15
Example solution (cont.)
void main() { int a = 5, b = 2; printf("Output%doesn't%dmake%dsense", a, b, a + b); } Output: Output5oesn't2make7sense (Every %d gets replaced with a number, which is underlined above to show what happens—in practice, the console isn’t going to underline your output!) 6/5/2019 ECE Application Programming: Lecture 5
16
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function Used to get input from user Returns number of items successfully assigned First argument is format specifiers Essentially same as printf() format string Every format specifier (%d, %lf, etc.) corresponds to an input value to be read Format string can contain other characters, which will be ignored if they are present If they’re not, you have a problem … Remaining arguments are variable addresses Use “address of” operator: & For example, given: int a; The address of a is: &a 6/5/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
17
ECE Application Programming: Lecture 6
scanf() and scanf_s() Visual Studio users will see an error message when using scanf() Function is technically not secure (not that it matters for our purposes) Suggests use of scanf_s() Windows-specific “secure” scan function Preferred method of removing warnings: #define _CRT_SECURE_NO_WARNINGS That line must come before #include <stdio.h> 6/5/2019 ECE Application Programming: Lecture 6
18
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function Documentation info: int scanf(const char *format [,argument] ...) format - is format specifiers similar to printf() specifiers arguments - are ADDRESSES of where to store what the user enters 6/5/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
19
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function int hours; float rate; scanf("%d %f",&hours,&rate); If user types: 34 5.7 hours ? 1284 rate ? 1288 hours 34 1284 rate 5.7 1288 6/5/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
20
scanf() format strings
scanf() will skip space characters for all types but %c Read input until it finds something that’s not a space, then see if it matches the desired type If type matches, value will be stored in specified variable If type doesn’t match, nothing stored; function stops Space in string only matters if using %c %c will read any character Includes spaces, newlines, etc. Example: given scanf("%d%c", &i, &c); Input: 3a i = 3, c = 'a' Input: 3 a i = 3, c = ' ' Input: 3 a i = 3, c = '\n' (assuming newline directly after 3) 6/5/2019 ECE Application Programming: Lecture 6
21
ECE Application Programming: Lecture 6
scanf() return value scanf() returns # of successfully read items Ex.: given scanf("%d%d", &x, &y); Input: 3 7 x = 3, y = 7, return value = 2 Input: x = 3, y = 7, return value = 2 Input: x = 3, y = ?, return value = 1 y is unchanged Input: x1 7 x = ?, y = ?, return value = 0 x, y both unchanged Can assign return value to variable Example: int numRead; // # input values read numRead = scanf("%d%d", &x, &y); 6/5/2019 ECE Application Programming: Lecture 6
22
ECE Application Programming: Lecture 6
Example Variables: int i; double d; char c; What values are read for each of the following inputs and scanf() calls? Assume the input is as follows: scanf("%d%lf", &i, &d) scanf("%d %lf", &i, &d) scanf("%lf%d", &d, &i) scanf("%d%c", &i, &c) scanf("%d %c", &i, &c) 6/5/2019 ECE Application Programming: Lecture 6
23
ECE Application Programming: Lecture 6
Example solution What values are read for each of the following inputs and scanf() calls? scanf("%d%lf", &i, &d) i = 34, d = 5.7 scanf("%d %lf", &i, &d) scanf("%lf%d", &d, &i) d = 34, i = 5 scanf("%d%c", &i, &c) i = 34, c = ' ' (space) scanf("%d %c", &i, &c) i = 34, c = '5' 6/5/2019 ECE Application Programming: Lecture 6
24
Using scanf() and printf() together
ECE Introduction to Computer Engineering I 02/09/2005 Using scanf() and printf() together #include <stdio.h> int main() { int hours; float rate; float grosspay; printf("Enter hours: "); scanf("%d",&hours); printf("Enter pay rate: "); scanf("%f",&rate); grosspay = hours * rate; printf("You earned $%f\n",grosspay); } 6/5/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
25
scanf() function - Payroll Ver 2
ECE Introduction to Computer Engineering I 02/09/2005 scanf() function - Payroll Ver 2 #include <stdio.h> int main() { double hours; double rate; double grosspay; printf("Enter hours: "); scanf("%lf",&hours); printf("Enter pay rate: "); scanf("%lf",&rate); grosspay = hours * rate; printf("You earned $%lf\n",grosspay); } 6/5/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
26
ECE Application Programming: Lecture 5
Final notes Next time PE1: Flowcharts and debugging Reminders: Program 2 due Friday, 9/21 6/5/2019 ECE Application Programming: Lecture 5
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.