Initialize complex structures from file input
One strength of the input stream is its ability to parse different types of data from a text file and convert them to their corresponding fundamental types. Here's a simple technique for importing data into a container of structures using an input stream.
How to do it…
In this recipe, we'll take a data file and import its disparate fields into a vector
of struct
objects. The data file represents cities with their populations and map coordinates:
- This is
cities.txt
, the data file we'll read:Las Vegas 661903 36.1699 -115.1398 New York City 8850000 40.7128 -74.0060 Berlin 3571000 52.5200 13.4050 Mexico City 21900000 19.4326 -99.1332 Sydney 5312000 -33.8688 151.2093
The city name is on a line by itself. The second line is population, followed by longitude and latitude. This pattern repeats for each of the five cities.
- We'll define our filename in a constant so that we can open it later...