Basic file operations in C++ Dr. Ahmed Telba
Learning Objectives C++ I/O streams. Reading and writing sequential files. Reading and writing random access files.
Table 12-1
Figure 1-1
Figure 1-2
4.1 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.
4.2 File Names All files are assigned a name that is used for identification purposes by the operating system and the user.
Setting Up a Program for File Input / Output Before file I/O can be performed, a C++ program must be set up properly. File access requires the inclusion of # include <fstream>
Input &Output with files C++ provides the following classes to perform output and input of characters to/from files: ofstream: Stream class to write on files ifstream: Stream class to read from files fstream: Stream class to both read and write from/to files.
Path of file Before data can be written to or read from a file, the file must be opened. ifstream inputFile; inputFile.open(“customer.dat”); // Path of file using : ifstream fin("D:\\data.txt ");
C++ Files and Streams Why use File Handling For permanent storage. The transfer of input - data or output - data from one computer to another can be easily done by using files. For read and write from a file you need another standard C++ library called fstream, which defines three new data types:
How to achieve File Handling For achieving file handling in C++ we need follow following steps Naming a file Opening a file Reading data from file Writing data into file Closing a file
Input &Output with files C++ provides the following classes to perform output and input of characters to/from files: ofstream: Stream class to write on files ifstream: Stream class to read from files fstream: Stream class to both read and write from/to files.
Functions use in File Handling Operation open() To create a file close() To close an existing file get() Read a single character from a file put() write a single character in file. read() Read data from file write() Write data into file.
Defining and Opening a File The function open() can be used to open multiple files that use the same stream object. Syntax file-stream-class stream-object; stream-object.open("filename"); Example ofstream outfile; // create stream outfile . open ("data1"); // connect stream to data1 Closing a File A file must be close after completion of all operation related to file. For closing file we need close() function. Syntax outfile.close();
File Opening mode Example fstream file; Meaning Purpose ios :: out Write Open the file for write only. ios :: in read Open the file for read only. ios :: app Appending Open the file for appending data to end-of-file. ios :: ate take us to the end of the file when it is opened. Example fstream file; file.Open("data . txt", ios :: out | ios :: in);
FLAGES IN FILE FLAGES IN FILE
File Open Modes ios:: app - (append) write all output to the end of file ios:: ate - data can be written anywhere in the file ios:: binary - read/write data in binary format ios:: in - (input) open a file for input ios::out - (output) open afile for output ios: trunc -(truncate) discard the files’ contents if it exists
// basic file operations writing to file #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("example.txt"); myfile << "Writing this to a file.\n"; cout<<" myfile " << "Writing this to a file.\n"; myfile.close(); return 0; }
Writing to file #include <iostream> #include <fstream> using namespace std; int main() { char x = 's'; int d = 77; double i = 3.14; ofstream fout("data2.txt"); fout << x << d << ' ' << i ; cout << x << d << ' ' << i ; fout.close(); cout << "File Completed\n"; return 0; }
#include <iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open("FF.txt"); fout << "HELLOW FILE .\n"<< "WELCOME YOU PROGRAM\n" << "WHAT DA YOU LIKE OF ME\n"; fout.close(); }
// writing in file #include<iostream> //divide by 7 #include <fstream> using namespace std; int main() { ofstream fout("DDDDD.txt"); for(int i=4;i<=200;i++) if(i%7==0) fout<<i<<" : divide by Two (7) ."<<"\n"; cout<<i<<" : divide by Two (7) ."<<"\n"; } fout.close();
#include<iostream>//prime number #include<fstream> using namespace std; int main() { ofstream fout("prime2.txt"); int num; bool prime; cout << "Please enter a positive integer" << endl; cin >> num; for(int i = 3; i <= num; i++){ prime = true; for(int n = 2; n <= i - 1; n++){ if(i % n == 0){ prime = false; } if(prime){ cout << i << " is prime" << endl; fout << i << " is prime" << endl;
#include<iostream>// !x=x*(x-1)*(x-2)…. #include<fstream> using namespace std; int main() { ofstream fout("factial2.txt"); // Variable Declaration int counter, n, fact = 1; // Get Input Value cout<<"Enter the Number :"; cin>>n; //for Loop Block for (int counter = 1; counter <= n; counter++) fact = fact * counter; } fout<<n<<" Factorial Value Is "<<fact; fout.close(); cout<<n<<" Factorial Value Is "<<fact; return 0;
Testing for Open Errors dataFile.open(“cust.txt”, ios::in); if (!dataFile) { cout << “Error opening file.\n”; }
Another way to Test for Open Errors dataFile.open(“cust.dat”, ios::in); if (dataFile.fail()) { cout << “Error opening file.\n”; }
// writing on a text file #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile ("examplett.dat"); if (myfile.is_open()) { myfile << "This is a new file created in cpp.\n"; myfile << "This is another line.\n"; myfile.close(); } else cout << "Unable to open file"; return 0;
file operations in C++ #include <fstream> #include <iostream> using namespace std; int main () { ofstream myfile; myfile.open ("example22.txt"); myfile << "Writing this to a file.\n"; myfile<<"Hope fine”" << endl; myfile<<"this frist file ”" << endl; myfile.close(); return 0; }
#include <fstream> #include <iostream> using namespace std; int main() { char FirstName[30], LastName[30]; int Age; char FileName[20]; cout << "Enter First Name: "; cin >> FirstName; cout << "Enter Last Name: "; cin >> LastName; cout << "Enter Age: "; cin >> Age; cout << "\nEnter the name of the file you want to create:. .txt "; cin >> FileName; ofstream Students(FileName, ios::out); Students << FirstName << "\n" << LastName << "\n" << Age; cout << "\n\n"; return 0; }
Write to file #include<iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open("FFFF.txt"); fout << "Asalamualikom hope fine .\n" << "WELCOME TO GE 211 FILE SECTION PROGRAM\n" << "HOPE TO DO WELL IN SECOND MEDTERM EXAM\n"; fout.close(); }
//Write the odd number in file #include<iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open("E:\\firsteee.txt"); int i,j; for(i=2;i<30;i+=2) { fout<<i<<"\t"; cout<<i<<"\t";} fout.close(); }
// print in file Even number 1:30 #include<iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open("firstExa.txt"); int i,j; for(i=1;i<30;i+=2) fout<<i<<"\t"; fout.close(); }
#include<iostream> #include <fstream> using namespace std; int main() {ofstream fout; fout.open("ffffff2.txt"); float i,j,m,sum; j=3; sum=0; for(i=1;i<=100;i++){ m=(i*i)/(j*j); j=j+2; sum=sum+m;} cout<<"seque="<<sum<<endl; fout<<"seque="<<sum<<endl; fout.close(); }
//write equation for this series #include<iostream> using namespace std; int main() { int i,j,m,n,sum; sum=0; cin>>n; for(i=1 ;i<=n ;i++) m=i*i; sum=sum+m; } cout<< "seque="<<sum<< endl; }
#include<iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open("ffff00.txt"); int i,j,m,n,sum; sum=0; cin>>n; for(i=1 ;i<=n ;i++) m=i*i; sum=sum+m; } cout<< "seque="<<sum<< endl; fout<< "seque="<<sum<< endl; fout.close(); }
#include<iostream> // using both file and screen #include <fstream> using namespace std; int main() { ofstream fout; fout.open("xxxx.txt"); int i,j,m,n,sum; sum=0; cout<<"equation for this series ="<<endl; cin>>n; for(i=1 ;i<=n ;i++) m=i*i; sum=sum+m; } cout<< "seque="<<sum<< endl; fout<< "seque= written in file is="<<sum<< endl; fout.close(); }
#include<iostream> #include <fstream> #include<cmath> using namespace std; int main() { float i,m,n,b,a,y,x,s; y=0; b=2; cout<<"enter the last power of\n"; cin>>n; cout<<"enter the volue of(x)\n"; cin>>s; for(i=1;i<=n;i++){ x=pow(s,i); a=pow(b,i); m=x/a; y=y+m; } cout<<"y= "<<y;
#include<iostream> #include <fstream> #include<cmath> using namespace std; main() {ofstream fout; fout.open("D:\\UUUU.txt"); float i,m,n,b,a,y,x,s; y=0; b=2; cout<<"enter the last power of\n"; cin>>n; cout<<"enter the volue of(x)\n"; cin>>s; for(i=1;i<=n;i++){ x=pow(s,i); a=pow(b,i); m=x/a; y=y+m; } cout<<"y= "<<y; fout<<"y= "<<y; fout.close();
//Fenonci seris #include<iostream> #include <fstream> using namespace std; main() {ofstream fout; fout.open("finoncy.txt"); int i,s,b,d ; s=0; d=1; for(i=0;i<20;i++) { b=s; s=d; d=s+b; fout<<d<<"\t"; } fout.close();
//write to file #include<iostream> #include <fstream> using namespace std; int main() { ofstream fout; fout.open(“seris.txt"); int i,j,m,n,sum; sum=0; cin>>n; for(i=1 ;i<=n ;i++) m=i*i; sum=sum+m; } fout<< "seque="<<sum<< endl; fout.close(); }
Read from file #include <fstream> #include <iostream> using namespace std; int main() { char array [80]; ifstream fin; fin.open("firstExa.txt"); while(!fin.eof()) {fin.getline(array,80); cout<<array<<endl;} fin.close(); }
Write in binary file ofstream fout ; fout.open("file path",iostream family fout.write((char*)& data ,sizeo(data);
Binary form #include<iostream.h> #include <fstream.h> main() { int Array[80],i; for(i=0;i<10;i++) cin>> Array[i]; ofstream fout; fout.open("D:\\ahmed.bin",ios::binary); fout .write((char *) & Array , sizeof(Array)); fout.close(); system("pause"); }
// writing on a text file #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile ("example.txt"); if (myfile.is_open()) { myfile << "This is a line.\n"; myfile << "This is another line.\n"; myfile.close(); } else cout << "Unable to open file"; return 0;
// reading a text file #include <iostream> #include <fstream> #include <string> using namespace std; int main () { string line; ifstream myfile ("example.txt"); if (myfile.is_open()) { while ( myfile.good() ) getline (myfile,line); cout << line << endl; } myfile.close(); else cout << "Unable to open file"; return 0;
Using fout #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main (int aaa,char *avg[]) { ofstream fout ("my_out.txt"); fout<<" Assalamualikom Hope fine" << endl; fout<<"Please tray good in second exam this frist file " << endl; return 0;}
Write in file #include <fstream> #include <iostream> using namespace std; int main( ) { //cout<<"Exam1\n"; // ifstream ;// read // ofstream ;// write // fstream;//read &write ofstream myfile; myfile.open("kkkk.txt"); myfile<< "Exam1 is ok\n"; myfile<< "please tray good in second exam"; myfile.close(); return 0; }
Using app #include <fstream> #include <iostream> using namespace std; int main( ) { /*cout<<"Exam1\n"; ifstream ;// read ofstream ;// write fstream;//read &write*/ fstream myfile; myfile.open("kkkk.txt",ios ::out|ios::app); //myfile<< "Exam1 is ok\n"; myfile<< "please tray good in second exam****************\n"; //cout<<myfile.rdbuf(); myfile.close(); return 0; }
Read from file #include <fstream> #include <iostream> using namespace std; int main( ) { ifstream myfile; myfile.open("kkkk.txt"); //myfile<< "Exam1 is ok\n"; //myfile<< "please tray good in second exam"; cout<<myfile.rdbuf(); myfile.close(); }
Reading from file #include<iostream> #include<fstream> using namespace std; int main() { char m; int i; double j; ifstream fin("data.txt");// enter k,5,9.8 fin >> m >> i >> j; cout << m << endl << i << endl<< j << endl ; fin.close();}
// basic file operations #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("example.txt"); myfile << "Writing this to a file.\n"; myfile.close(); return 0; }
myfile.open ("example.bin", ios::out | ios::app | ios::binary); class default mode parameter ofstream ios::out ifstream ios::in fstream ios::in | ios::out ofstream myfile; myfile.open ("example.bin", ios::out | ios::app | ios::binary);
Basic file operations // basic file operations #include <iostream> #include <fstream> //#include <ifstream> //#include <ofstream> using namespace std; int main () { ofstream myfile; myfile.open ("XXX.txt"); myfile << "**Writing this to a file.\n"; myfile << "****Writing this to a file.\n"; myfile << "*********Writing this to a file.\n"; myfile.close(); return 0; }
Basic file operations #include <iostream> #include <fstream> using namespace std; int main (int argc, char *arvg[ ]) { ofstream fout("XXX.txt"); fout << "**Writing this to a file.\n"; fout << "****Writing this to a file.\n"; fout << "*********Writing this to a file.\n"; return EXIT_SUCCESS; }
Read from file #include <fstream> #include <iostream> using namespace std; int main( ) { /*cout<<"Exam1\n"; ifstream ;// read ofstream ;// write fstream;//read &write*/ ifstream myfile; myfile.open("finoncy.txt"); //myfile<< "Exam1 is ok\n"; //myfile<< "please tray good in second exam"; cout<<myfile.rdbuf(); myfile.close(); return 0; }
// reading a text file #include <iostream> #include <fstream> #include <stdlib.h> using namespace std; int main () { char buffer[256]; ifstream examplefile ("kk.txt"); if (! examplefile.is_open()) { cout << "Error opening file"; exit (1); } while (! examplefile.eof() ) { examplefile.getline (buffer,100); cout << buffer << endl; } return 0;
// writing on a text file #include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile ("example.txt"); if (myfile.is_open()) { myfile << "This is a line.\n"; myfile << "This is another line.\n"; myfile.close(); } else cout << "Unable to open file"; return 0;