Reading from and Writing to Files - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Reading from and Writing to Files

Description:

Title: Life is Full of Alternatives Author: Shereen Khoja Last modified by: chadd williams Created Date: 8/15/2004 12:26:21 AM Document presentation format – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 22
Provided by: Shere159
Category:
Tags: files | reading | writing

less

Transcript and Presenter's Notes

Title: Reading from and Writing to Files


1
Reading from and Writing to Files
2
Files (3.12)
  • Data stored in variables is temporary
  • Files are used to permanently store large amounts
    of data
  • We will learn how to write programs that can
  • Create files
  • Write to files
  • Read from files
  • This is similar to how we read from the keyboard
    and wrote to the screen

3
Steps to Using Files
  • There are five steps that must be taken in order
    to use files in C
  • Include header files
  • Define a file stream object
  • Open the file
  • Use the file
  • Close the file

4
1. Libraries
  • To access files you will need to include
  • ltiostreamgt
  • ltfstreamgt

5
2. File Stream Objects
  • ifstream inputFile
  • ofstream outputFile
  • fstream inAndOut
  • File stream objects are the ways that you refer
    to the files you are using
  • Can specify which input/output file to use
  • May input from more than one file
  • May output to more than one file

6
3. Opening Files
  • inputFile.open(filename)
  • Same syntax for both input and output files
  • Filename is a string literal
  • Example
  • ifstream inputFile
  • inputFile.open(input.dat)

7
Check File Opened Correctly
  • Before we start using the file for reading or
    writing, we should make sure that it opened
    correctly
  • if(!inputInfo true)
  • cout ltlt Error opening input file
  • exit(1)

8
true
  • These two statements are equivalent
  • if(!inputInfo true)
  • if(!inputInfo)
  • Even if you dont have true in your loop, C
    will put it there by default
  • This applies to all conditional statements in
    repetition and selection structures

9
4. Using File Streams
  • Use input file variable wherever you use cin
  • Examples
  • inputFile gtgt num
  • Output output file variable wherever you use cout
  • Examples
  • outputFile ltlt num

10
20.1 Example Writing to a File
  • The following program asks the user to input
    numbers and writes these numbers to a file

11
Example
  • includeltfstreamgt
  • includeltiostreamgt
  • using namespace std
  • int main()
  • ofstream outputFile
  • int num
  • outputInfo.open("out.dat")
  • if (!outputInfo)
  • cout ltlt " Error opening file" ltlt endl
  • exit (1)
  • cout ltlt "Enter a number (9999 to quit) "
  • cin gtgt num
  • while (num ! 9999)
  • outputFile ltlt num ltlt " "
  • cin gtgt num

12
20.2 Reading from a File
  • Write a program that will read in a sequence of
    numbers (double) from a file and calculate the
    sum. Assume that the last number is the trailer
    (-9999)

13
20.3 Reading Until the EOF
  • It is possible to read from a file until the end
    is reached
  • while (inputFile gtgt num)
  • cout ltlt num ltlt " "
  • sum num

14
20.4 Reading Characters
  • Write a program that reads in some text from a
    file and outputs that text to the screen
  • The file contains
  • Hello Everyone!
  • I'm a file that
  • contains some text.

15
Solution
  • ifstream inputFile
  • char letter
  • inputFile.open("in.dat")
  • if (!inInfo)
  • cout ltlt " Error opening file" ltlt endl
  • exit (1)
  • while (inputFile gtgt letter)
  • cout ltlt letter
  • cout ltlt endl

16
The Output
  • HelloEveryone!I'mafilethatcontainssometext.
  • Whats happened?!
  • All spaces, tabs, and new lines have been
    ignored.
  • This is because gtgt only reads visible characters
  • How can we read all characters so that the output
    looks exactly like the input

17
Solution
  • ifstream inputFile
  • char letter
  • inputFile.open("in.dat")
  • if (!inInfo)
  • cout ltlt " Error opening file" ltlt endl
  • exit (1)
  • while (inputFile.get( letter ))
  • cout ltlt letter
  • cout ltlt endl

18
20.5 Problem
  • Consider the data file below, where - indicate
    spaces
  • --12--33.4
  • -d--12.3
  • -2--5
  • What values would be assigned to the variables
    for each of the statements below where inputFile
    is the file variable?
  • int i,j
  • double x,y
  • char ch
  • inputFile gtgt i gtgt x gtgt y
  • inputFile gtgt i gtgt j
  • inputFile gtgt ch gtgt i
  • inputFile gtgt x gtgt y gtgt ch gtgt x

19
Problem 0 ( yournumber 3)
  • Read in the following file and print out the sum
    of ALL the numbers in the file and print out the
    sum of the numbers on each line, except the first
    number. The first number tells you how many more
    numbers there will be on that line.

Output Line 1 10 Line 2 6 Line 3 20 Total
48
File Example 4 3 4 1 2 3 2 3 1 5 9 0 9 1 1
20
Problem 1 ( yournumber 3)
  • Read in the following file and print out the
    character you read and whether or not the letter
    is a vowel. At the end, print out how many of
    each vowel you found.

Output a Vowel b Not Vowel c Not Vowel A
Vowel e Vowel f Not Vowel i Vowel a 2 e
1 i 1 o 0 u 0
File Example a b c A e f i
21
Problem 2 ( yournumber 3)
  • Prompt the user for their first and last name and
    50 numbers. Write the first and last name to a
    file followed by the numbers, two numbers on each
    line in reverse order.

Output file Bob Smith 4 9 99 3 ... 1 9
Input Name? Bob Smith Number 1 9 Number 2
4 Number 3 3 Number 4 99 ... Number 49
9 Number 50 1
Write a Comment
User Comments (0)
About PowerShow.com