I wrote some piece of code which reads and write multiple data structures on a file using C++. I would be grateful to get your feedback on what you think about the code (it works at least when I tested). Thanks. #include "stdafx.h" #include <iostream> #include <fstream> #include <sstream> using namespace std; // data structure to be written to a file struct WebSites { char SiteName[100]; int Rank; }s1,s2,s3,s4; int _tmain(int argc, _TCHAR* argv[]) { strcpy(s1.SiteName, "www.ppp.com"); s1.Rank = 0; strcpy(s2.SiteName, "www.rrr.com"); s2.Rank = 111; strcpy(s3.SiteName, "www.code.com"); s3.Rank = 123; strcpy(s4.SiteName, "www.yahoo.com"); s4.Rank = 14; // write fstream binary_file("c:\\test.dat",ios::out|ios::binary|ios::app); binary_file.write(reinterpret_cast<char *>(&s1),sizeof(WebSites)); binary_file.write(reinterpret_cast<char *>(&s2),sizeof(WebSites)); binary_file.write(reinterpret_cast<char *>(&s3),sizeof(WebSites)); binary_file.write(reinterpret_cast<char *>(&s4),sizeof(WebSites)); binary_file.close(); // Read fstream binary_file2("c:\\test.dat",ios::binary|ios::in| ios::ate ); int size = binary_file2.tellg(); for(int i = 0; i<size/sizeof(WebSites); i++) { WebSites p_Data; binary_file2.seekg(i*sizeof(WebSites)); binary_file2.read(reinterpret_cast<char *>(&p_Data),sizeof(WebSites)); cout<<p_Data.SiteName<<endl; cout<<"Rank: "<< p_Data.Rank<<endl; } binary_file2.close(); return 0; }