Storing data from a file from multiple lines into different variables

Sep 13, 2020 at 4:26pm
Hi There, I have been doing files in c++ for about a month now and I have a grip on how to do basic questions. However I cam across this question that needed me to store different variables on each line and I have never done something like this before. Please can someone help. The data file looks like so:

3222 Peter Monyane
26 M 1
42 42 42 42 42
11000 11070 10960 10090 9090
2343 Sarah Sekonyane
31 F 0
21 21 21 42 21
5600 5499 5555 12000 6000

So for example I need to store Peters number, name, age, sex etc and then move onto the next person. I am looping through the file but am only able to store the first line of data and then I dont know how to store the second line of data into new variables. I dont need to be spoon fed but I have been on this for 12 days now and I still cant figure it out.

Sep 13, 2020 at 4:34pm
Looks like this is all the data representing one person:

1
2
3
4
3222 Peter Monyane
26 M 1
42 42 42 42 42
11000 11070 10960 10090 9090


Create a struct that can hold all that data. Something like:

1
2
3
4
5
6
7
8
9
10
struct dataset
{
  int number;
  string first_name;
  string last_name;
  int age;
  char sex;
  ...
  ...
};


Open the file, create a dataset, read into it;

1
2
3
4
5
6
7
8
9
10
11
12
13
vector<person> allThePeople;

dataset person;
fileIn >> person.number;
fileIn >> person.first_name;
fileIn >> person.second_name;
fileIn >> person.age;
fileIn >> person.sex;
// ETC ETC. READ IN ONE WHOLE SET OF DATA

// Now the variable "person" holds all the data for one person.
// Put that person object into some sensible container, like a vector<person>
allThePeople.push_back(person);


Now do it more than once. A loop. Keep filling person with all the data, and then copying that person into the vector, until all done.
Last edited on Sep 13, 2020 at 4:35pm
Sep 13, 2020 at 4:36pm
Show what you've tried, and explain exactly what each line/item of the file means.

Topic archived. No new replies allowed.