Introduction to Computing Lecture 03: Basic input / output operations Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering [email protected] Topics • Streams • printf function • scanf function Data storage • Data can be stored in two different ways: – by assignment to a variable – copying data from an input device into a variable using a function like scanf Input operation • Sometimes, it is need to copy data into a variable for a program to manipulate different data each time it executes – This data transfer from the outside world into memory is called an input operation Output operation • As the program executes, it performs computations and stores the results in memory • These program results can be displayed to the user by an output operation Input/Output Program Input/output functions • All input/output operations in C are performed by special program units called input/output functions • You can gain access to most of the operations through the preprocessor directive – #include <stdio.h> Input/output functions • In C, a function call is used to call or activate a function • Calling a function is analogous to asking a friend to perform an urgent task Streams • Text input or output is dealt with as a sequence of characters • A stream serves as a channel to convey characters between I/O and programs Streams: Input -- Example int item; 135 25.5 _ float cost; scanf(“%d %f”, &item, &cost); 1 3 5 2 5 . 5 \n input buffer Streams: Input -- Example (cont) int item; 135 25.5 _ float cost; scanf(“%d %f”, &item, &cost); 1 3 5 item 2 5 . 5 \n cost Streams: Input – Example (cont) int item; 135 25.5 _ float cost; scanf(“%d %f”, &item, &cost); 2 5 . 5 \n item 135 cost Streams: Input – Example (cont) int item; 135 25.5 _ float cost; scanf(“%d %f”, &item, &cost); \n item 135 cost 25.5 Streams: Output -- Example printf(“Hello!\n”); H e l l o ! \n output buffer Streams: Output – Example (cont) printf(“Hello!\n”); H e l l o ! \n Streams: Output – Example (cont) printf(“Hello!\n”); e l l o ! \n H Streams: Output – Example (cont) printf(“Hello!\n”); l l o ! \n He Streams: Output – Example (cont) printf(“Hello!\n”); l o ! \n Hel Streams: Output – Example (cont) printf(“Hello!\n”); o ! \n Hell Streams: Output – Example (cont) printf(“Hello!\n”); ! \n Hello Streams: Output – Example (cont) printf(“Hello!\n”); \n Hello! Streams: Output – Example (cont) printf(“Hello!\n”); Hello! _ Streams • From the program's point of view, the characters are queued in a pipe • The sequence of characters is organized into lines • Each line: – can have zero or more characters – ends with the "newline" character '\n' "Standard" Streams • Standard streams: – stdin - standard input • usually from keyboard – stdout - standard output • usually to screen – stderr - standard error • usually to screen • must have at the top of your program #include <stdio.h> • can be redirected stdin: Input • Data is read in from stdin (into a variable) using the scanf() function Example: ReadData Input name, age, gender, idNumber #include <stdio.h> #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ int main() { return 0; } #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ int main() { char name[100]; float age; char gender; int idNumber; return 0; } #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ int main() { char name[100]; float age; char gender; int idNumber; scanf("%s %f %c %d", name, &age, &gender, &idNumber); return 0; } #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ int main() { char name[100]; float age; char gender; int idNumber; scanf("%s %f %c %d", name, &age, &gender, &idNumber); return 0; } #include <stdio.h> /*************************************\ Read in important info about a lecturer \**************************************/ int main() { char name[100]; Ali 19.5 float age; char gender; M int idNumber; 2085 scanf("%s %f %c %d", name, &age, &gender, &idNumber); return 0; } Input: Ali 19.5 M 2085 stdout:Output • Data (e.g., from a variable) is written out to stdout using the printf() function. Example: Write Data Set name to “Ali” Set age to 19.5 Set gender to „M‟ Set idNumber to 2085 Output name, age, gender, idNumber #include <stdio.h> /*****************************************\ Write out important info about a lecturer \*****************************************/ int main() { char *name float age char gender int idNumber = = = = ”Ali" ; 19.5; ‟M'; 2085 ; Ali 19.5 M 2085 _ printf("%s\n%f\n%c\n%d\n", name, age, gender, idNumber); return 0; } Formatted Input and Output • General form: printf(format-control-string, other-arguments); scanf(format-control-string, other-arguments ); • Examples: printf("%s %f %c %d", name, age, gender, idNumber); scanf("%s %f %c %d", name, &age, &gender, &idNumber); printf -- Format-Control-String • Describes the format of the data for output • Contains “conversion specifiers or place holders” and “literal characters” Example: printf(“%s is %d years old.\n”, name, age); printf -- Format-Control-String (cont) • Describes the format of the data for output • Contains “conversion specifiers or place holders” and “literal characters” Example: printf(“%s is %d years old.\n”, name, age); conversion specifiers or placeholders printf -- Format-Control-String (cont) • Describes the format of the data for output • Contains “conversion specifiers” and “literal characters” Example: printf(“%s is %d years old.\n”, name, age); literal characters printf -- Other-Arguments • For printf: variables containing data for output Example: printf(“%s is %d years old.\n”, name, age); • In case of multiple placeholders, number of place holders must match number of variables • C matches variables with placeholders in leftto-right order scanf -- Format-Control-String • Describes the format of the data given as input • Contains “conversion specifiers or place holders” Example: scanf("%s %f %c %d", name, &age, &gender,&id); conversion specifiers scanf -- Other-Arguments • For scanf: “pointers” to variables in which the input will be stored Example: scanf("%s %f %c %d", name, &age, &gender,&id); scanf -- Other-Arguments (cont) • For scanf: “pointers” to variables in which the input will be stored Example: scanf("%s %f %c %d", name, &age, &gender,&id); • Variables of type int, float or char need ‘&’ • Do NOT use ‘&’ with strings! • „&‟ is for scanf only! Common Conversion Specifiers for Numerical Information • decimal integer: %d printf(“What is %d plus %d?\n”, x, y); scanf(“%d”, &sum); • float: %f printf(“%f squared is...? ”, x); scanf(“%f”, &ans); • double: printf(“%f squared is...? ”, x); scanf(“%lf”, &ans); Conversion Specifiers for Alphanumeric Information • char: %c printf(“What letter follows %c?\n”,ch); scanf(“%c”, &nextchar); • string: %s printf(“Name: %s\n”, name); scanf(“%s”, name); printf: Conversion Specifiers • i or d: display a signed decimal integer • f: display a floating point value (default precision is 6) • e or E: display a floating point value in exponential notation • g or G: display a floating point value in either f form or e form; whichever is more compact for the given value and precision • L: placed before any float conversion specifier to indicate that a long double is displayed scanf: Conversion Specifiers • d: read an optionally signed decimal integer • i: read an optionally signed decimal, octal, or hexadecimal integer i and d: the argument is a “pointer” to an integer int idNumber; scanf("%d", &idNumber); scanf: Conversion Specifiers (cont) • h or l: placed before any integer conversion specifiers to indicate that a short or long integer is to be input long int idNumber; scanf("%ld", &idNumber); • l or L: placed before any float conversion specifiers to indicate that a double or long double is to be input Skipping Characters in Input Stream • Skipping blank spaces scanf("%d %d %d", &day, &month, &year); • An alternative – Enter data as dd-mm-yyyy: 16-3-1999 – Store each number in date variables scanf("%d-%d-%d", &day, &month, &year); Displaying Prompts • When input data are needed in an interactive program, it is better to use the printf function to display a prompting message or prompt, that tells the user what data to enter and if necessary, the format of the input Displaying Prompts - Examples • printf(“Enter the distance in miles> “); scanf(“%lf”, &miles); • printf(“Enter date as dd-mm-yyyy”); scanf("%d-%d-%d", &day, &month, &year); Formatting output • Using justification for decimal numbers – int a=15, b=116; printf(“%d\n”,a); printf(“%d”,b); Output: 15 116 Formatting output • Using justification for decimal numbers – int a=15, b=116; printf(“%3d\n”,a); printf(“%3d”,b); Output: 15 116 Formatting output • Floating point numbers – double fp = 251.7366; printf( "%f %.3f %.2f %e %E\n", fp, fp, fp, fp,fp ); Output: 251.736600 251.737 251.74 2.517366e+002 2.517366E+002 Formatting output with \n • \n is an escape sequence in C • The cursor is a moving place market that indicates the next position on the screen where information will be displayed • When executing a printf function, the cursor is advanced to the start of the next line on the screen if \n is encountered in the format string \n Examples • printf(“Here is the first line\n“); printf(“\nand this is the second.\n“); • Here is the first line and this is the second. \n Examples • printf(“This sentence appears \non two lines.“); • This sentence appears on two lines. Formatting output with \t • \t is another escape sequence in C for horizontal • tab Example: – printf(“age id\n”); printf(“--- ------\n”); printf(“%d %d\n”,age1,id1); printf(“%d %d\n”,age2,id2); – Output: age id --- -----12 1222 3 1423 Formatting output with \t • Example with (\t and justification): – printf(“age\tid\n”); printf(“---\t------\n”); printf(“%3d\t%4d\n”,age1,id1); printf(“%3d\t%4d\n”,age2,id2); – Output: age id -------12 1222 3 1423 Some Other Escape sequences • \a: Alert (bell) • \b: Backspace • \‟: Single quotation mark • \”: Double quotation mark • \\: Backslash Summary • Input from keyboard is via the stdin stream using the scanf() function • Output to the screen is via the stdout stream using the printf() function • Streams carry characters – divided into lines with „\n‟ character • To use the C library functions, you must include the stdio.h header file • Input and output can be formatted
© Copyright 2026 Paperzz