EECE.2160 ECE Application Programming

Slides:



Advertisements
Similar presentations
ECE Application Programming Instructor: Dr. Michael Geiger Spring 2013 Lecture 6: printf() formatting.
Advertisements

Introduction to C Programming Overview of C Hello World program Unix environment C programming basics.
Declarations/Data Types/Statements. Assignments Due – Homework 1 Reading – Chapter 2 – Lab 1 – due Monday.
Basic Input/Output and Variables Ethan Cerami New York
Lecture No: 16. The scanf() function In C programming language, the scanf() function is used to read information from standard input device (keyboard).
Chapter 9 Formatted Input/Output. Objectives In this chapter, you will learn: –To understand input and output streams. –To be able to use all print formatting.
Chapter 3: Formatted Input/Output Copyright © 2008 W. W. Norton & Company. All rights reserved. 1 Chapter 3 Formatted Input/Output.
3. FORMATTED INPUT/OUTPUT. The printf Function The first argument in a call of printf is a string, which may contain both ordinary characters and conversion.
E-1 University of Washington Computer Programming I Lecture 5: Input and Output (I/O) © 2000 UW CSE.
Operating System Discussion Section. The Basics of C Reference: Lecture note 2 and 3 notes.html.
Department of Electronic & Electrical Engineering IO reading and writing variables scanf printf format strings "%d %c %f"
Chapter 3: Formatted Input/Output 1 Chapter 3 Formatted Input/Output.
ECE Application Programming
ECE Application Programming
ECE Application Programming
ECE Application Programming
EECE.2160 ECE Application Programming
ECE Application Programming
ECE Application Programming
Jonathan C.L. Liu, Ph.D. CISE Department University of Florida, USA
EECE.2160 ECE Application Programming
Variables have a type have an address (in memory) have a value
ECE Application Programming
EECE.2160 ECE Application Programming
Administrative things
Input/Output Input/Output operations are performed using input/output functions Common input/output functions are provided as part of C’s standard input/output.
Formatted Input/Output
Formatted Input/Output
Introduction to CS Your First C Programs
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Formatted Input/Output
EECE.2160 ECE Application Programming
ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Formatted Input/Output
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Presentation transcript:

EECE.2160 ECE Application Programming Instructors: Dr. Michael Geiger & Dr. Lin Li Spring 2019 Lecture 5: Basic variable output with printf() Basic variable input with scanf()

ECE Application Programming: Lecture 5 Lecture outline Announcements/reminders Textbook exercises due 3 days after each lecture Program 2 due Monday, 2/11 Today’s lecture Program 2 overview Review: operators, printf() basics printf() examples scanf() 4/23/2019 ECE Application Programming: Lecture 5

ECE Application Programming: Lecture 5 Program 2 overview Learn basic I/O Basic circuit analysis All formulas on last page of figures document zyBooks-specific note Must write all input for program ahead of time Visual Studio-specific note To avoid scanf() warnings, include following line before #include <stdio.h>: #define _CRT_SECURE_NO_WARNINGS 4/23/2019 ECE Application Programming: Lecture 5

Review: Arithmetic Operations Operator Addition + Subtraction - Multiplication * Division / Modulus Division (Remainder) % 4/23/2019 ECE Application Programming: Lecture 5

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); 4/23/2019 ECE Application Programming: Lecture 6

ECE Application Programming: Lecture 5 printf() example float a=67.49,b=9.999925; 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 67.490000 there 9.999925 67.49000067.4900009.9999259.999925 a=67.49, b=10.0Cool huh? 4/23/2019 ECE Application Programming: Lecture 5

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); 4/23/2019 ECE Application Programming: Lecture 5

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 = 2 + 3 = 5 printf("%d %d %d %d\n", i, j, k, m); } Output: 2 3 6 5 4/23/2019 ECE Application Programming: Lecture 5

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 = 0.250000, g = 5.00 (remember, 6 places after decimal point printed by default with floating-point data) 4/23/2019 ECE Application Programming: Lecture 5

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!) 4/23/2019 ECE Application Programming: Lecture 5

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 4/23/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall

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> 4/23/2019 ECE Application Programming: Lecture 6

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 4/23/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall

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 4/23/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall

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) 4/23/2019 ECE Application Programming: Lecture 6

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: 3 7.2  x = 3, y = 7, return value = 2 Input: 3 .3  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); 4/23/2019 ECE Application Programming: Lecture 6

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: 34 5.7 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) 4/23/2019 ECE Application Programming: Lecture 6

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' 4/23/2019 ECE Application Programming: Lecture 6

Using scanf() and printf() together ECE 160 - 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); } 4/23/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall

scanf() function - Payroll Ver 2 ECE 160 - 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); } 4/23/2019 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall

ECE Application Programming: Lecture 5 Final notes Next time Finish scanf() introduction PE1: Flowcharts and debugging Reminders: Textbook exercises due 3 days after each lecture Program 2 due Monday, 2/11 4/23/2019 ECE Application Programming: Lecture 5