3. C Input and Output
Input - provide the program with some data to be used
Output - display data on screen or write the data to a printer or
a file.
- Built-in functions are present in C header files
- I/O is essentially done one character (or byte) at a time
4. stream -- a sequence of characters flowing from one place to
another
input stream: data flows from input device (keyboard, file, etc) into
memory
output stream: data flows from memory to output device
(monitor, file, printer, etc)
5. Standard I/O streams
•stdin: standard input stream (default is keyboard)
•stdout: standard output stream (defaults to monitor)
•stderr: standard error stream
6. Formatted I/O -- refers to the conversion of data to and from
a stream of characters, for printing (or reading) in plain text
format
• All text I/O we do is considered formatted I/O
• other option is reading/writing direct binary information
Syntax:
printf (format_string, list_of_expressions);
7. Printing Integers
int numStudents = 35123;
printf(“I Year count is %d students", numStudents);
// Output:
// I Year count is 35123 students
8. • We can specify the field width
(i.e. how many 'spaces' the item prints in).
• Defaults to right-justification.
• Place a number between the % and the d.
• Example:
field width is 10:
printf(" I Year count is %10d students", numStudents);
Output:
I Year count is 35123 students
9. To left justify, use a negative number
in the field width:
printf("FSU has %-10d students", numStudents);
// Output:
// FSU has 35123 students
10. If the field width is too small or left unspecified,
it defaults to the minimum number of characters
required to print the item:
• printf("FSU has %2d students", numStudents);
// Output:
// FSU has 35123 students
11. Printing Floating-point numbers
Use the %f modifer to print floating point values in fixed notation:
//example
double cost = 123.45;
printf("Your total is $%f todayn", cost);
// Output:
// Your total is $123.450000 today
12. - control the decimal precision - the number of places after the decimal.
- Output will round to the appropriate number of decimal places, if necessary:
• printf("Your total is $%.2f todayn", cost);
// Output:
// Your total is $123.45 today
13. -Controlling field width :
• printf("Your total is $%9.2f todayn", cost);
// Output:
// Your total is $ 123.45 today
14. Printing characters and strings
•Use the formatting specifier %c for characters.
•Default field size is 1 character:
•char letter = 'Q'; printf("%c%c%cn", '*', letter, '*');
•// Output is: *Q*
•Use %s for printing strings.
•Field widths :
•printf("%s%10s%-10sENDn", "Hello", "Alice", "Bob");
//Output ???????? assignment
15. Scanf():
- read data in from standard input (keyboard)
- Syntax:
- scanf(format_string, list_of_variable_addresses);
- White space is skipped by default in consecutive numeric reads.
- But it is not skipped for character/string inputs.
16. #include <stdio.h>
int main()
{
int i;
float f;
char c;
printf("Enter an integer and a float, then Y or Nn> ");
scanf("%d%f%c", &i, &f, &c);
printf("You entered:n");
printf("i = %d, f = %f, c = %cn", i, f, c);
}
17. Sample run #1
Enter an integer and a float, then Y or N
> 34 45.6Y
You entered: i = 34, f = 45.600, c = Y
Sample Run #2
Enter an integer and a float,
then Y or N
12 34.5678 N
You entered: i = 12, f = 34.568, c =
18. • character that was read was NOT the letter 'N'.
• It was the space.
• (Remember, white space not skipped on character
reads).
19. • Consider if the scanf line looked like this:
scanf("%d%f %c", &i, &f, &c);
• There's a space between the %f and the %c in the format string.
• This allows the user to type a space.
Suppose this is the typed input:
12 34.5678 N
• Then the character variable c will now contain the 'N'.
20. Assignment :
#include <stdio.h>
int main()
{
int i;
double f;
char c;
printf("Enter an integer and a float, then Y or Nn> ");
scanf("%d%lf %c", &i, &f, &c);
printf("You entered:n");
printf("i = %d, f = %f, c = %cn", i, f, c);
}
22. getchar() & putchar() functions:
• getchar()
-reads a character from the terminal
- returns it as an integer
- reads only single character at a time
- to read more than one character – LOOP
putchar() :
- Displays char passed to it on the screen
- returns the same character