I've been learning C/C++ and I'm currently doing an ATM project. It all works fine but I would like to improve it so when i quit the program and it will load the data used previously.

currently I use a struct like this

struct database {
       int pin, sort, account, trans;     // pin, sortcode, account number and what transaction number their on
       float balance;                     // balance         
       string history[20];                // last 20 transactions
       string name;                       // name
} data [PEOPLE];                          // name is data and their are "PEOPLE" amount of records

and I currently load my data at the start like this and imports the data into the variables

void populate()

{
     int i;

     data[0].pin=1234;
     data[0].sort=123456;
     data[0].account=12341234;
     data[0].balance=456.43;
     data[0].name = "Mr. Sam Berwick";
     data[0].trans= 0;
     for(i=0;i!=19;i++)
     {
           data[0].history[i] = " ";
     }

     data[1].pin=2341;
     data[1].sort=234561;
     data[1].account=23412341;
     data[1].balance=4532.78;
     data[1].name = "Mr. David Reynolds";
     data[1].trans= 0;
     for(i=0;i!=19;i++)
     {
           data[1].history[i] = " ";
     }
}

How would I set it up so It imports a text file like this

1234
123456
12341234
456.43
Mr. Sam Berwick
0




















2341
234561
23412341
etc

Here's a good place to start: C++ File I/O

You just need to be consistent with your input data and know when to read and what you're reading. Post back if you have any questions.

EDIT: All data you read from text files is stored as strings. You will need to convert those strings to integers / floats if you want to be able to store them as such. These links will help you with that:

atoi - String to Integer Conversion
atof - String to Float Conversion

Maybe he should use a std::stringstream to convert a string to an integer/float. After all that's on Bjarne Stroustrup's website.

There are also infinite ways to do what you're asking, I would suggest playing with std::ifstream and std::ofstream. I don't usually like to suggest an approach, but I think formatting the data file like you have it (without those extra empty lines) will work just fine, as long as your data is separated on each line, and consistent.