An Introduction to Programming with C++ Fifth Edition Chapter 13 Sequential Access Files Objectives • • • • Open a sequential access file Determine whether a file was opened successfully Write data to a sequential access file Read data from a sequential access file An Introduction to Programming with C++, Fifth Edition 2 Objectives (continued) • Test for the end of a sequential access file • Close a sequential access file • Read information from and write information to a sequential access file in .NET C++ An Introduction to Programming with C++, Fifth Edition 3 Concept Lesson • • • • File Types Using Sequential Access Files Creating and Opening a Sequential Access File Determining whether a File was Opened Successfully An Introduction to Programming with C++, Fifth Edition 4 Concept Lesson (continued) • • • • Writing Information to a Sequential Access File Reading Information from a Sequential Access File Testing for the End of a Sequential Access File Closing a Sequential Access File An Introduction to Programming with C++, Fifth Edition 5 File Types • A program can “read” from or “write” to a file – Files to which information is written are output files – Files that are read by the computer are input files • Types of files in C++ – Sequential • Information is accessed in consecutive order – Random • Can be accessed in consecutive or in random order – Binary • Information can be accessed by its byte location An Introduction to Programming with C++, Fifth Edition 6 Using Sequential Access Files • A sequential access file is often called a text file An Introduction to Programming with C++, Fifth Edition 7 Using Sequential Access Files (continued) An Introduction to Programming with C++, Fifth Edition 8 Creating and Opening a Sequential Access File • You must create the input and output file objects used in a program – #include <fstream> • ifstream and ofstream classes – using std::ifstream; and using std::ios; An Introduction to Programming with C++, Fifth Edition 9 Creating and Opening a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 10 Creating and Opening a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 11 Creating and Opening a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 12 Determining whether a File was Opened Successfully • open() may fail when attempting to open a file – E.g., it will not be able to create an output file when the path in fileName does not exist, or when the disk is full An Introduction to Programming with C++, Fifth Edition 13 Determining whether a File was Opened Successfully (continued) ! is the Not logical operator An Introduction to Programming with C++, Fifth Edition 14 Writing Information to a Sequential Access File • Field: single item of information about a person, place, or thing – E.g., a name, a salary, a SSN, or a price • Record: a collection of one or more related fields – Contains data about a specific person, place, or thing – The college you are attending keeps student records • Examples of fields include your SSN, name, address, phone number, credits earned, and grades earned An Introduction to Programming with C++, Fifth Edition 15 Writing Information to a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 16 Writing Information to a Sequential Access File (continued) • To verify if information was written correctly, open the (sequential access) file in a text editor – E.g., the text editor in Visual C++ or Notepad An Introduction to Programming with C++, Fifth Edition 17 Reading Information from a Sequential Access File • Use >> to read char and numeric data from a file • Use getline() to read string data from a sequential access file – The default delimiter character is the newline character (‘\n’) An Introduction to Programming with C++, Fifth Edition 18 Reading Information from a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 19 Testing for the End of a Sequential Access File • A file pointer keeps track of the next character either to read from or write to a file – When a sequential access file is opened for input, the file pointer is positioned before the first character – As characters are read, the pointer is moved forward An Introduction to Programming with C++, Fifth Edition 20 Testing for the End of a Sequential Access File (continued) An Introduction to Programming with C++, Fifth Edition 21 Closing a Sequential Access File • To prevent the loss of data, close a sequential access file as soon as program finishes using it An Introduction to Programming with C++, Fifth Edition 22 Summary • Sequential access files can be input or output files • To use a text file, program must contain: – include <fstream> directive – using std::ios; statement • Use the ifstream and ofstream classes to create input and output file objects, respectively • Use is_open() to determine whether a text file was opened successfully An Introduction to Programming with C++, Fifth Edition 23 Summary (continued) • Records in a text file are usually written on a separate line in the file – Use endl • eof() determines if file pointer is at end of the file • Use close() to close a file – Failing to close an open file can result in loss of data An Introduction to Programming with C++, Fifth Edition 24 Application Lesson: Using a Sequential Access File in a C++ Program • Lab 13.1: Stop and Analyze • Lab 13.2 – Program should allow flower shop owner to save in a text file each salesperson’s name and sales amount • Also, display the total of the sales amounts in file • Lab 13.3 – Modified program will allow the user to display contents of sales.txt file • Lab 13.4: Desk-Check Lab • Lab 13.5: Debugging Lab An Introduction to Programming with C++, Fifth Edition 25