Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,E-,*,University of WashingtonComputer Programming I,Lecture 5:,Input and Output(I/O),2000 UW CSE,1,Overview,Topics,Output:printf,Input:scanf,Basic format codes,More on initializing variables,2,Writing Useful Programs,Its hard to write useful programs using only variables and assignment statements,Even our Fahrenheit to Celsius program needed more:,Needed a way to get data into and out of the program,Well learn more about doing this today,Lots of terminology and messy details,but worthwhile.,3,Central,Processing,Unit,Main,Memory,Monitor,Network,Disk(Files),Keyboard,mouse,Whats a Computer?,4,Input:movement of data into memory from outside world(e.g.,from keyboard).,Changes the value of a variable,“read operation,Output:movement of data from memory to outside world(e.g.,to monitor),“write operation,Does not change value of memory,Basic Definitions,5,Text Output,6,printf(Enter a Fahrenheit temperature:);,scanf(%lf,celsius=(fahrenheit-32.0)*5.0/9.0;,printf(That equals%f degrees Celsius.,celsius);,I/O Statements from a Familiar Program,7,The functions printf and scanf provide basic display I/O services.,printf(“control string,list of expressions);,scanf(“control string,list of,Control string gives the format of output or input.,Expressions are what to output.,Variables are where to store the input.,&is magic(that is REQUIRED for scanf!),Display Input and Output,8,int numPushups;numPushups=5;printf(“Hello.Do%d pushups.n,numPushups);output:Hello.Do 5 pushups.,%d is a placeholder(“conversion character)for an int value.,n is an escape sequence for“newline character.,printf():Display Output,9,intnumPushups;,numPushups=5;printf(“Hello.);printf(“Do%d pushups.n,numPushups);printf(“Do them now.n);output:Hello.Do 5 pushups.Do them now.,What Does the n Do?,10,printf(“control string,list of expressions);,printf might have more than one expression in its list:,printf(“%d times%f is%f.n,multiplier,pi,(double)multiplier*pi),Getting a Little Fancier,11,%placeholders in format string match expressions in output list in number,order,and type.,int multiplier;double pi;,pi=3.14;multiplier=2;,printf(“%d times%f is%f.n,multiplier,pi,(double)multiplier*pi);,Output:2 times 3.14000 is 6.28000.,Multiple Output Expressions,12,Advanced Output Formatting,This is only the beginning!A few of many other things you can do:,Control number of decimals,3.1 vs 3.100000,Exponential(scientific)or decimal notation,3.1 vs 3.1E0,Control total width(including spaces),_3.1 vs _3.1,How?,13,Advanced Output Formatting,This is only the beginning!A few of many other things you can do:,Control number of decimals,3.1 vs 3.100000,Exponential(scientific)or decimal notation,3.1 vs 3.1E0,Control total width(including spaces),_3.1 vs _3.1,How?,Look in textbook or a reference manual,or online help!,14,Output Format Examples,%10.2f _ _ _ _ 1 2 3.5 5 double,%10.4f _ _ 1 2 3.5 5 0 0,%.2f 1 2 3.5 5,%10d _ _ _ _ _ _ _ 4 7 5 int,%-10d 4 7 5 _ _ _ _ _ _ _,%10c _ _ _ _ _ _ _ _ _ a char,15,scanf(“control string,int numPushups;printf(“Hello.Do how many pushups?);scanf(“%d ,output:Hello.Do how many pushups?5Do 5 pushups.,input list variables MUST be preceded by an&.,input list variables MUST be preceded by an&.,scanf():Read Input,16,If You Forget the&,The program will compile,but when you execute.,17,If You Forget the&,The program will compile,but when you execute.,18,space(),tab(t),newline(n)are“whitespace,Whitespace is skipped by scanf for int(“%d),and double(“%lf),This means the user can type spaces before a number and they are ignored,Not skipped for char input“%c,each character typed,including spaces,is used,Whitespace,19,Basic rule:,%placeholders in the format must match variables in the input list,MUST,!match one-for-one in,number,order,and type,.,intstudentID;doublegrade;,scanf(“%d%lf,Multiple Inputs,20,Typescanf()printf()char,%c%c,int,%d%d,%i,also works,double,%,lf,%,f,(,l,ong),f,loat,What happens if types dont match?,printf -,garbled output,scanf -,unpredictable errors and dont forget the&!,Format Items Summary,21,Output:printf(“control string,output list);,output list expressions;values to be printed,control string types and desired format,for now,NO“&,ever!,Input:scanf(“control string,input list variables;values to be read,control string types and expected format,can be a way of initializing variables,for now,YES“&,always!,Both:%xs,I/O list match in number,order,type,printf/scanf Summary,22,Input is the movement of data into memory,In C,we use scanf for input from the keyboard,Output is the movement of data from memory,In C,use printf for output to the screen,Know the basic printf/scanf rules,and know them well,Be aware that advanced formatting options exist and can be looked up when needed,I/O Summary,23,Bonus Topic:More on Initializing Variables,Review:,Initialization,means giving something a value for the,first,time.,Potential ways to initialize:,Assi