introduction to c - yola · 2017. 3. 16. · displaying prompts •when input data are needed in an...
Post on 31-Aug-2020
1 Views
Preview:
TRANSCRIPT
Introduction to Computing
Lecture 03:
Basic input / output operations
Assist.Prof.Dr. Nükhet ÖZBEK
Ege University
Department of Electrical & Electronics Engineering
nukhet.ozbek@ege.edu.tr
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
135 25.5
_
1 3 5 2 5 . 5 \n
int item;
float cost;
scanf(“%d %f”, &item, &cost);
input buffer
Streams: Input -- Example (cont)
135 25.5
_
1 3 5 2 5 . 5 \n
int item;
float cost;
scanf(“%d %f”, &item, &cost);
item cost
Streams: Input – Example (cont)
135 25.5
_
2 5 . 5 \n
int item;
float cost;
scanf(“%d %f”, &item, &cost);
item
135
cost
Streams: Input – Example (cont)
135 25.5
_
\n
int item;
float cost;
scanf(“%d %f”, &item, &cost);
item
135
cost
25.5
Streams: Output -- Example
H e l l o ! \n
printf(“Hello!\n”);
output buffer
H e l l o ! \n
printf(“Hello!\n”);
Streams: Output – Example (cont)
e l l o ! \n
H
printf(“Hello!\n”);
Streams: Output – Example (cont)
l l o ! \n
He
printf(“Hello!\n”);
Streams: Output – Example (cont)
l o ! \n
Hel
printf(“Hello!\n”);
Streams: Output – Example (cont)
o ! \n
Hell
printf(“Hello!\n”);
Streams: Output – Example (cont)
! \n
Hello
printf(“Hello!\n”);
Streams: Output – Example (cont)
\n
Hello!
printf(“Hello!\n”);
Streams: Output – Example (cont)
Hello!
_
printf(“Hello!\n”);
Streams: Output – Example (cont)
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];
float age;
char gender;
int idNumber;
scanf("%s %f %c %d", name, &age, &gender, &idNumber);
return 0;
}
Input: Ali 19.5 M 2085
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 = ”Ali" ;
float age = 19.5;
char gender = ‟M';
int idNumber = 2085 ;
printf("%s\n%f\n%c\n%d\n", name, age, gender, idNumber);
return 0;
}
Ali
19.5
M
2085
_
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);
• 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
• 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)
printf(“%s is %d years old.\n”, name, age);
literal characters
• Describes the format of the data for output
• Contains “conversion specifiers” and “literal characters”
Example:
printf -- Format-Control-String (cont)
• For printf: variables containing data for output
Example:
printf(“%s is %d years old.\n”, name, age);
printf -- Other-Arguments
• In case of multiple placeholders, number of place holders must match number of variables
• C matches variables with placeholders in left-to-right order
• Describes the format of the data given as input
• Contains “conversion specifiers or place holders”
scanf -- Format-Control-String
Example:
scanf("%s %f %c %d", name, &age, &gender,&id);
conversion
specifiers
• For scanf: “pointers” to variables in which the input will be stored
scanf -- Other-Arguments
scanf("%s %f %c %d", name, &age, &gender,&id);
Example:
• „&‟ is for scanf only!
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:
• Variables of type int, float or char need ‘&’
• Do NOT use ‘&’ with strings!
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);
•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
printf: Conversion Specifiers
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
top related