file i/o in c++. using input/output files a computer file is stored on a secondary storage device...
TRANSCRIPT
![Page 1: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/1.jpg)
File I/O in C++
![Page 2: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/2.jpg)
Using Input/Output Files
A computer file• is stored on a secondary storage device
(e.g., disk);• is permanent;• can be used to provide input data to a
program or receive output data from a program, or both;
• should reside in Project directory for easy access;
• must be opened before it is used.
![Page 3: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/3.jpg)
General File I/O Steps
• Declare a file name variable
• Associate the file name variable with the disk file name
• Open the file
• Use the file
• Close the file
![Page 4: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/4.jpg)
Using Input/Output Files
stream - a sequence of characters• interactive (iostream)
cin - input stream associated with keyboard.
cout - output stream associated with display.• file (fstream)
ifstream - defines new input stream (normally associated with a file).
ofstream - defines new output stream (normally associated with a file).
![Page 5: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/5.jpg)
Stream I/O Library Header Files Note: There is no “.h” on standard header files : <fstream> iostream -- contains basic information required for all
stream I/O operations iomanip -- contains information useful for performing
formatted I/O with parameterized stream manipulators fstream -- contains information for performing file I/O
operations strstream -- contains information for performing in-memory
I/O operations (i.e., into or from strings in memory)
![Page 6: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/6.jpg)
ios is the base class. istream and ostream inherit from ios ifstream inherits from istream (and ios) ofstream inherits from ostream (and ios) iostream inherits from istream and ostream (&
ios) fstream inherits from ifstream, iostream, and
ofstream
Classes for Stream I/O in C++
![Page 7: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/7.jpg)
C++ streams
#include <fstream>int main (void){ //Local declarations ifstream fsIn; ofstream fsOut; . . . return 0;}
![Page 8: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/8.jpg)
input_stream.open("numbers.dat")
Stream handle
Name
Calling
Object
Dot
Operator
Member Function
Name
File
Name
Object and Member Functions
![Page 9: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/9.jpg)
File I/O Example: Writing
#include <fstream>using namespace std;int main(void){
ofstream outFile(“fout.txt");outFile << "Hello World!";outFile.close();return 0;
}
![Page 10: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/10.jpg)
File I/O Example: Writing#include <fstream>using namespace std;
int main(void){
ofstream outFile; outFile.open(“fout.txt”);
outFile << “First line”; //behave just like coutoutFile.close();
outFile<<“Another line”<<endl; //??return 0;
}
![Page 11: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/11.jpg)
File I/O Example: Reading#include <iostream>#include <fstream>
int main(void){
ifstream openFile(“data.txt"); //open a text file data.txtchar ch;while(!OpenFile.eof()){
OpenFile.get(ch);cout << ch;
}OpenFile.close();
return 0;}
![Page 12: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/12.jpg)
File I/O Example: Reading#include <iostream>#include <fstream>#include <string>
int main(void){
ifstream openFile(“data.txt"); //Declare and open a text filestring line;
while(!openFile.eof()){getline(openFile,line);//fetch line from data.txt and put it in a stringcout << line;}openFile.close();
return 0;}
![Page 13: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/13.jpg)
File I/O Example: Reading#include <iostream>#include <fstream>#include <string>
int main(void){
ifstream openFile(“data.txt"); //open a text file data.txtstring line;
if(openFile.is_open()){ //while(!openFile.eof()){getline(openFile,line);//read a line from data.txt and put it in a string
cout << line;}
else{ cout<<“File does not exist!”<<endl; exit(1);} }
openFile.close(); return 0;}
![Page 14: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/14.jpg)
More Input File-Related Functions
ifstream fsin; fsIn.open(const char[] fname)
• connects stream fsIn to the external file fname.
fsIn.get(char& character)• extracts next character from the input stream
fsIn and places it in the character variable character.
fsIn.eof()• tests for the end-of-file condition.
![Page 15: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/15.jpg)
More Output File-Related Functions
ofstream fsOut; fsOut.open(const char[] fname)
• connects stream fsOut to the external file fname.
fsOut.put(char character)• inserts character character to the output
stream fsOut. fsOut.eof()
• tests for the end-of-file condition.
![Page 16: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/16.jpg)
File Open ModeName Description
ios::in Open file to read
ios::out Open file to write
ios::app All the date you write, is put at the end of the file. It calls ios::out
ios::ate All the date you write, is put at the end of the file. It does not call ios::out
ios::trunc Deletes all previous content in the file. (empties the file)
ios::nocreate If the file does not exists, opening it with the open() function gets impossible.
ios::noreplace If the file exists, trying to open it with the open() function, returns an error.
ios::binary Opens the file in binary mode.
![Page 17: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/17.jpg)
File Open Mode#include <fstream>int main(void){
ofstream outFile("file1.txt", ios::out);outFile << "That's new!\n";outFile.close();
Return 0;}
If you want to set more than one open mode, just use the OR operator- |. This way: ios::ate | ios::binary
![Page 18: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/18.jpg)
Dealing with Binary files
Functions for binary file handling get(): read a byte and point to the next byte to read
put(): write a byte and point to the next location for write
read(): block reading
write(): block writing
![Page 19: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/19.jpg)
Dealing with Binary files
Some useful functions seekg():Go to a specific position when reading
seekp():Go to a specific position when writing
tellg(): Retunrs an int type, that shows the current position of the inside-pointer. This one works only when you read a file.
tellp(): The same as tellg() but used when we write in a file. flush():Save data from the buffer to the output file.
![Page 20: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/20.jpg)
Binary File I/O Examples
//Example 1: Using get() and put()#include <iostream>#include <fstream>void main(){
fstream File("test_file",ios::out | ios::in | ios::binary);char ch;ch='o';File.put(ch); //put the content of ch to the fileFile.seekg(ios::beg); //go to the beginning of the fileFile.get(ch); //read one charactercout << ch << endl; //display itFile.close();
}
![Page 21: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/21.jpg)
Binary File I/O Examples//Example 2: Using read() and write()
#include <fstream.h>#include <string.h>void main(){
fstream File("test_file.txt",ios::out | ios::in | ios::binary);char arr[13];strcpy(arr,"Hello World!"); //put Hello World! into the arrayFile.write(arr,5); //put the first 5 symbols into the file- "Hello"File.seekg(ios::beg); //go to the beginning of the filestatic char read_array[10]; //I will put the read data, hereFile.read(read_array,3); //read the first 3 symbols- "Hel"cout << read_array << endl; //display themFile.close();
}
![Page 22: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/22.jpg)
More Binary File I/O Examples
#include <fstream>void main(){
//if we have "Hello" in test_file.txtifstream File("test_file.txt");char arr[10];File.read(arr,10);
//this should return 5, as Hello is 5 characters long
cout << File.tellg() << endl; File.close();
}
![Page 23: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/23.jpg)
Summary of InputFile-Related Functions
#include <fstream>ifstream fsIn; fsIn.open(const char[] fname)
• connects stream fsIn to the external file fname. fsIn.get(char& c)
• extracts next character from the input stream fsIn and places it in the character variable c.
fsIn.eof()• tests for the end-of-file condition.
fsIn.close()• disconnects the stream and associated file.
fsIn >> c; //Behaves just like cin
![Page 24: File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device](https://reader038.vdocuments.mx/reader038/viewer/2022110206/56649d015503460f949d349e/html5/thumbnails/24.jpg)
Summary of OutputFile-Related Functions
#include <fstream>ofstream fsOut; fsOut.open(const char[] fname)
• connects stream fsOut to the external file fname. fsOut.put(char c)
• inserts character c to the output stream fsOut. fsOut.eof()
• tests for the end-of-file condition. fsOut.close()
• disconnects the stream and associated file. fsOut << c; //Behaves just like cout