“After a day spent staring at a computer monitor, think of a book as a kind of screen saver for your brain” “One good reason why computers can do more.

Slides:



Advertisements
Similar presentations
CMSC 2021 C++ I/O and Other Topics. CMSC 2022 Using C++ Stream I/O Default input stream is called cin Default output stream is called cout Use the extraction.
Advertisements

CPS120: Introduction to Computer Science Lecture 15 B Data Files.
Copyright © 2012 Pearson Education, Inc. Chapter 12: Advanced File Operations.
File I/O Supplemental Material. Background In C++, files can be manipulated in the same manner we manipulate streams such as: cout and cin. Therefore,
17 File Processing. OBJECTIVES In this chapter you will learn:  To create, read, write and update files.  Sequential file processing.  Random-access.
Tutorial4us.com. File A file is a collection of related data stored in a particular area on the disk. The data is stored in disk using the concept of.
1 File I/O In C++, I/O occurs in streams. A stream is a sequence of bytes Each I/O device (e.g. keyboard, mouse, monitor, hard disk, printer, etc.) receives.
Darbas su failais Arnas Terekas IT 1gr. Vilniaus universitetas Matematikos ir informatikos fakultetas.
CSIS 123A Lecture 8 Streams & File IO Glenn Stevenson CSIS 113A MSJC.
Chapter 8 Data File Basics.
C++ for Engineers and Scientists Second Edition Chapter 8 I/O File Streams and Data Files.
File I/O ifstreams and ofstreams Sections 11.1 &
1 CS161 Introduction to Computer Science Topic #13.
FILE HANDLING IN C++.
Advanced File Operations Chapter File Operations File: a set of data stored on a computer, often on a disk drive Programs can read from, write to.
File Input and Output in C++. Keyboard and Screen I/O #include cin (of type istream) cout (of type ostream) Keyboard Screen executing program input data.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 12: Advanced File Operations.
Programming Principles II Lecture Notes 7 Files Andreas Savva.
STL List // constructing lists #include int main () { // constructors used in the same order as described above: std::list first; // empty list of ints.
File handling in C++ BCA Sem III K.I.R.A.S. Using Input/Output Files Files in C++ are interpreted as a sequence of bytes stored on some storage media.
File I/O 1 ifstreams and ofstreams Sections 11.1 & 11.2.
An Introduction to Programming with C++ Sixth Edition Chapter 14 Sequential Access Files.
Computer Programming TCP1224 Chapter 13 Sequential File Access.
File I/O. fstream files File: similar to vector of elements Used for input and output Elements of file can be –character (text)struct –object (non-text.
I/O in C++ October 7, Junaed Sattar. Stream I/O a stream is a flow of bytes/characters/ints or any type of data input streams: to the program output.
C++ FILE I/O.
FILE I/O IN C++. Using Input/Output Files A computer file  is stored on a secondary storage device (e.g., disk);  is permanent;  can be used to provide.
Liang, Introduction to Programming with C++, Second Edition, (c) 2010 Pearson Education, Inc. All rights reserved Chapter 13 File Input and.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 12 Advanced File Operations.
DCT1063 Programming 2 CHAPTER 3 FILE INPUT AND FILE OUTPUT Mohd Nazri Bin Ibrahim Faculty of Computer, Media & Technology TATi University College
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due Friday, 7pm. RAD due next Friday. Presentations week 6. Today: –More details on functions,
1 CSC241: Object Oriented Programming Lecture No 32.
Input/Output CSci 588: Data Structures, Algorithms and Software Design Fall 2011 All material not from online sources copyright © Travis Desell, 2011
Prof. amr Goneid, AUC1 CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 9. Streams & Files.
Copyright © 2012 Pearson Addison-Wesley. All rights reserved. Chapter 6 I/O Streams as an Introduction to Objects and Classes.
Exploring the C++ Stream Library Copyright 2006 Oxford Consulting, Ltd1 February IO Streams  IOStreams are part of the Standard C++ library.
Learners Support Publications Working with Files.
CS162 External Data Files 1 Today in CS162 External Files What is an external file? How do we save data in a file?
Lecture 14 Arguments, Classes and Files. Arguments.
Binary Files. Text Files vs. Binary Files Text files: A way to store data in a secondary storage device using Text representation (e.g., ASCII characters)
Copyright © 2006 Pearson Addison-Wesley. All rights reserved Today’s Lecture  I/O Streams  Console I/O  File I/O  Tools for File I/O  Sequential.
File I/O in C++. Using Input/Output Files A computer file  is stored on a secondary storage device (e.g., disk);  is permanent;  can be used to provide.
Writing to Files and Reading From Files. Writing Data to a File Creating a new file, a.dat or.txt file #include #include // for file writing #include.
File I/O in C++ I. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk); is permanent; can be used to provide.
Advanced File Operations Chapter File Operations File: a set of data stored on a computer, often on a disk drive Programs can read from, write to.
Ms N Nashandi Dr SH Nggada 2016/01/03Ms N Nashandi and Dr SH Nggada1 Week 6 -File input and output in C++
Programming II I/O Streams and Data Files 1(c) Asma AlOsaimi.
CS212: Object Oriented Analysis and Design
Chapter 14: Sequential Access Files
Programming with ANSI C ++
17 File Processing.
Introduction to Programming
Tutorial4us.com File Handling in C++ Tutorial4us.com.
What is a File? A file is a collection on information, usually stored on a computer’s disk. Information can be saved to files and then later reused.
C ++ MULTIPLE CHOICE QUESTION
CPSC 231 D.H. C++ File Processing
Introduction to Programming
FILE HANDLING IN C++.
17 File Processing.
آشنایی با ساختارها و کار با فایلها
files Dr. Bhargavi Goswami Department of Computer Science
Today’s Lecture I/O Streams Tools for File I/O
Tutorial4us.com. File A file is a collection of related data stored in a particular area on the disk. The data is stored in disk using the concept of.
Topics Input and Output Streams More Detailed Error Testing
Chapter 12: Advanced File Operations.
CPS120: Introduction to Computer Science
CHAPTER 4 File Processing.
C++ Programming: chapter 6 – iostream
C++ Programming Lecture 8 File Processing
Presentation transcript:

“After a day spent staring at a computer monitor, think of a book as a kind of screen saver for your brain” “One good reason why computers can do more work than people is that they never have to stop and answer the phone” Saturday March 07, 2009

Introduction to Programming Lecture 9

What is a File? Combination of characters, words, sentences and paragraph are called as file. Two Types of files – Text File (readable English characters) – Executable program file (Dos Command)

File Properties Name of the file Path of the file (Absolute & Relative) Length of the file Date of Creation File Access

Why do we need files? Information of the computer is volatile Execute the program and the data is saved on the hard disk. e.g Payroll system for SEECS Employees Store information once and reuse it Read/write/manipulate the data is File handling

File Handling Two ways to Access the Files – Sequential Access File – Random Access File

Text File Handling Basic steps for File handling – Open the file – Read and Write – Close the File

Cont… Previously we worked with “cin” and “cout”. Concept of Streams During File Handling a header file called “ ” is to be included. is a header file for file streams.

9 Read and Write file When we read the file, it means that file is used as an input for the program. We need to have a stream for input file ifstream ( input file stream) In order to read and write from the same file, ofstream.

Declaring File Stream (Step 1) ifstream inFile; //object for reading from file ofstream outFile; //object for writing into file NOTE: The variable/ objects inFile and outFile are used as “handle to refer” files.

Cont…..(Step 2) So far we didn’t attach the file with a handle. – ifstream myFile; We must open a file. For this we will use a function “Open”. – myFile.open(Filename); Note: Absolute / Relative Path for Filename

Cont…..(Step 3) Tell the compiler what you want to do with file i.e read, write or modify. Once the file is opened we can read it. myFile>>c; /* The first word of the file will be read in c, where c is a character array, same as using cin. */

Cont… myFile>>c1>>c2>>c3; // The first word will be read in c1,2 nd in c2, 3 rd in c3.

Cont….(Step 4) File must be closed and it is the responsibility of programmer to close the file. myFile.close(); No argument in close function.

Think……. What is the File that we are trying to open does not exist on the disk?????????

Error Checking Mechanism It is very important ifstream myFile; myFile.open(“mytext.txt”); /*If this file does not exists on the disk, the variable myFile will not be associated with any file. We must make sure that the file opening process is successful. */

Cont… If(!myFile) { cout<<“There is some error opening the file”<<endl; cout<<“ File cannot be opened”<<endl; } else cout<<“File opened successfully”<<endl;

Example: #include void main() { char name[50]; char sal[10]; char dept[30]; ifstream inFile; inFile.open("myfile.txt"); if(!inFile) { cout<<"Can’t open input file"<<endl; } while(!inFile.eof()) { inFile>>name>>sal>>dept; cout<<name<<"\t“<<sal<<“\t”<<dept<<endl; } inFile.close(); } //end of main

Output of the Program Name Salary Department Omer Exam Ali Faculty Rashid Faculty

Output File Handling Creation of a new file on the disk and writing data in it. or Open an existing file and overwrite it in such a manner that all old information is lost from it and new information is stored. or Open an existing file and append it in the end or Open an existing file and modify it from anywhere.

Cont… We can use the previous options when opening the file. open(filename,mode) The first argument is the name of the file, second argument will the mode of the file.

Cont….. Syntax myFile.open(“myFile.txt”, ios::in); or myFile.open(“myFile.txt”); /* The second argument associated myFile stream object with “myFile.txt” for input. */ // There are different modes available

File output: Appending #include using namespace std; void main() { cout<<"creating a file"<<endl; ofstream afile("test1.dat"); cout<<"writing to file.."<<endl; afile<<"these are test data"; } //end of file

ios :: in open for reading (default for ifstream) ios :: out open for writing (default for ofstream) ios :: app start writing at end of file (APPend) ios :: ate start reading or writing at EOF of file (ATEnd) ios :: trunc truncate file to zero length if it exists (TRUNCate) ios :: nocreate error when opening if file does not already exist ios :: noreplace error when opening for output if file already exists ios :: binary open file in binary (not text) mode List of File Handling Modes

25 Cont… ModeMeaning in Open a file/stream for extraction (input) out Open a file/stream for insertion (output) AppAppend rather than truncate an existing file. Each insertion (output) will be written to end of the file. truncDiscard the file contents if exists (similar to default behavior ate Opens the file without truncating, but allows data to be written anywhere in the file. binaryTreat the file as binary rather than text. A binary file has data stored in internal formats, rather than readable text.

Important…… If a file is opened with ios::out mode, a new file is created. However if the file already exists, its contents will be deleted and get empty unless you write something to it.

Example 2 main() { ofstream outFile; outFile.open(“myFileOut.txt”,ios::out); if(!outFile) { cout<<“ cannot open file”<<endl; } outFile.close(); }

Try yourself….. Write a program, which reads an input file of employee’s i.e. employeein.txt”. Add the salary of each employee by 200, and write the result in new file “ employeeout.txt”??

get( ) “>>” sign is not enough get( ) function is used to get a character from the file. The last character in the file is EOF, defined in header file. E.g char c; while((c=inFile.get( ) !=EOF) { //do all the processing outFile.put(c); }

Why get( ) >> does not read the new line character where as the get( ) function reads each character as it is typed. If we need to make copy of the file then get( ) function must be used.

put( ) put( ) function writes a character including new line feed to the file.

Think……. What if we want to write/read a whole line to file instead of writing character or words. After all the processing speed now is day is quite high?

getLine() Two functions – getLine() for input file stream – putLine() for output file stream // char name[100]; int maxChar=100; int stopchar=‘o’; inFile.getLine(name,maxChar,stopchar); myfile.getline (char *s, int n, char delim); Character array delimiter Numbers of characters to be read

Try yourself….. Write a program which reads a file using the getLine() function and display it on the screen?

fail() A call to open can be unsuccessful for a number of reasons. A member function of ifstream and ofstream named fail can be used to test whether or not a stream operation has failed. It take no arguments and returns a bool. Syntax: – in_stream.fail( );

Cont… Example: in_stream.open(“stuff.dat”); if (in_stream.fail()) { cout<<“input file opening failed.\n”; exit(); //to use this function include #include }

isspace() The function isspace() returns true if its argument is a whitespace character else returns false. Whitespace are all the characters that are displayed as blank space on the screen, including the blank character, the tab character, and the new-line character ’\n’.

Example: The following program will read the sentence terminate with the period and echo the string with all whitespace characters replace with the symbol “_”. char next; do{ cin.get(next); if(isspace(next)) cout<<‘_’; else cout<<next; } while (next !=‘.’);

Try it yourself !!!!!! Write a program that creates the output file “myoutput.txt” that is identical to the file “myoriginal.txt” except that all the occurrences of ‘C’ are replace by “C++”.

Random Access Files Discuss how to access the files randomly, forward and backward. Current position inside the file. Concept of file position ( Pointer into the file) tellg( ) and tellp( )----functions for determining the file pointer position.

Position in a File Assume that a file stream myfile is opened for reading. Myfile.tellg( ) gives us the current get position of the file pointer. It returns a whole number of type long, which is the position of the next character to be read from that file. tellp() function is used to determine the next position to write a character while writing into a file. It also returns a long number.

Setting the Position How to move forward and backward within the file???? seekg( ) and seekp( ) functions seekg( )---  takes us to certain position to start reading. seekp( )---> leads the position to write into. Both functions require an argument of type long to let them know the number of bytes to move forward or backward. (positive and negative number)

filePtr.seekg ( long Num, ios :: origin ) ; Number of characters to move to Starting point Setting the Position seekg ( 10L, ios :: beg ) ; seekg ( 10L, ios :: beg ) ; seekg (10L, ios :: cur ) ; seekg ( 10L, ios :: end ) ; seekg ( 10L, ios :: end ) ;

Example:--) aFile.seekg(10L, ios::beg) //move 10 bytes forward from the beginning of the file. aFile.seekg(20L, ios::cur) // move 20 bytes in the forward direction starting from current position (where current position can be obtained by using tellg( ) function. aFile.seekg(-10L,ios::cur) // move 10 bytes in the backward direction from the current position aFile.seekg(-100, ios::end) // move 100 bytes in backward direction from the end of the file.

Think and Apply….. Try to move the file pointer beyond the end of the file and before the beginning of the file and observe the behavior…….

Example 1 #include main ( ) { int length ; ifstream inFile ( “myFile.txt” ) ; inFile.seekg ( 0L, ios :: end ) ; length = inFile.tellg ( ) ; } It will tell you Length of the file

Name city Date-of-Birth : : : Jamil AhmedSukkur : : : File Rawalpindi Very tricky if you want to write at the middle of the file

Merge Method This is a text data And needs Original file Empty file To be replaced NOT For insertion in the middle of the file 1.The language does not impose any structure of the file, the file is just a bits and bytes for C++ 2.For easiness 1.Use serial number 2.Use sorted files

get ( ) and put ( ) character in a file myInputFile.get ( c ) ; myOutputFile.put ( c ) ;

read ( ) and write ( ) Functions read ( char *buff, int count ) ; write ( char *buff, int count ) ; Area in memory Number of bytes to be read Area in memory Number of bytes to be written

char str [ ] ; myInputFile.read ( str, ) ; myOuputFile.write ( str, ) ; Example 3 1.Read bytes from the file into str 2.Write bytes to a file from str

Example 2 This is an Apple This is a Sample

Example 2: This program firstly writes a string into a file and then replaces it partially. main() { long pos; ofstream outfile; outfile.open(“test.txt”); outfile.write(“this is an apple”,16); //write the string in the file pos=outfile.tellp(); //get the file pointer position outfile.seekp(pos-7); // move 7 positions backward outfile.close(); }

Try it !!!!!!!! Write a program that read the contents from “myfile1.txt” and copies the contents in reverse order in “outputfile.txt”…….. (Hint:---Make use of seekg function)

HINTS:-) afile.seekg(0L, ios::end); afile.seekg(-1L, ios::end); //set the position of the cursor to the last character of the file while(afile) { cout<<afile.tellg()<<endl; afile.get(c); Ofile.put(c); afile.seekg(-2L,ios::cur); //set the position of the cursor to the one character before the current position }

fstream fstream myFile ( “Sample.txt”, ios :: in | ios :: out ) ;

Example:- Try to understand by yourself fstream rfile; main() { char rchar; rfile.open(“myfile.txt”,ios::in||ios::out) if(!rfile) { cout<<“error opening file”;} for(rchar=‘A’;rchar<=‘Z’;rchar++) { rfile<<rchar; } rfile.seekg(8L, ios::beg); rfile>>rchar; cout<<“the 8 th char is”<<rchar; rfile.seekg(-16L, ios::end); rfile>>rchar; cout<<“ the 16 th character from the end”<<rchar; rfile.close(); }