Lập Trình C/C++ - Binary File

#Code:
#include<iostream>
#include<fstream>
using namespace std;

/* Structure in C++ */
struct itemList
{
 int item_no;
 string name;
 float price;
};

int main()
{
 /* Opne binary file for write */
 ofstream wfile("info.dat", ios::out | ios::binary);

 /* Check error in file opening */
 if(!wfile)
 {
  cout << "Cannot open file!" << endl;
  return 1;
 }
 
 itemList wlists[3];

 wlists[0].item_no = 1;
 wlists[0].name = "Book";
 wlists[0].price = 150.50;
 
 wlists[1].item_no = 2;
 wlists[1].name = "Pen";
 wlists[1].price = 15.53;

 wlists[2].item_no = 3;
 wlists[2].name = "Pencil";
 wlists[2].price = 10.53;
 
 /* Write binary data using 'write()' */
 for(int i = 0; i < 3; i++)
     wfile.write((char *) &wlists[i], sizeof(itemList));

 /* Close file for writing */
 wfile.close();

 /* Check file condition */
 if(!wfile.good()) 
 {
  cout << "Error occurred at writing time!" << endl;
  return 1;
 }

 /* Open binary file for read */
 ifstream rfile("info.dat", ios::in | ios::binary);

 /* Check error in file opening */
 if(!rfile)
 {
  cout << "Cannot open file!" << endl;
  return 1;
 }
 
 itemList rlists[3];

 /* Read binary data using 'read()' */
 for(int i = 0; i < 3; i++)
     rfile.read((char *) &rlists[i], sizeof(itemList));

 /* Close file for reading */
 rfile.close();

 /* Check file condition */
 if(!rfile.good()) 
 {
  cout << "Error occurred at reading time!" << endl;
  return 1;
 }

 for(int i=0; i < 3; i++) 
 {
  cout << "Item No: " << rlists[i].item_no << endl;
  cout << "Name: " << rlists[i].name << endl;
  cout << "Price: " << rlists[i].price << endl;
  cout << endl;
 }
 
 return 0;
}    

0 Comment:

Đăng nhận xét

Thank you for your comments!