C++ file problems

P

Pete

Hi there all you clever clever programmers.
I am a university student who's currently face deep in a group project
to create a program to control and display information from our flight
simulator. I am personally am in charge of drawing the pretty maps of
aircraft position, runway position etc.

Now over this weekend I have been coding my little heart out making a
lovely section of code that reads in various data from 2 files, one to
do with navigation beacons and one to do with runways.
But i have hit a stumbling block, my seperate functions to read in the
data from each file work perfectly : ON THEIR OWN. For some reason when
i run one of these functions (both of which use an 'ifstream' object
called 'infile' ; start with 'infile.open("beacons.txt");' and end with
'infile.close();') before the other the second time i try to use
infile.open it ends up lumping me with a get()pointer position of '-1'
! Does anyone have any clues why?
 
R

Rolf Magnus

Pete said:
Hi there all you clever clever programmers.
I am a university student who's currently face deep in a group project
to create a program to control and display information from our flight
simulator. I am personally am in charge of drawing the pretty maps of
aircraft position, runway position etc.

Now over this weekend I have been coding my little heart out making a
lovely section of code that reads in various data from 2 files, one to
do with navigation beacons and one to do with runways.
But i have hit a stumbling block, my seperate functions to read in the
data from each file work perfectly : ON THEIR OWN. For some reason when
i run one of these functions (both of which use an 'ifstream' object
called 'infile' ; start with 'infile.open("beacons.txt");' and end with
'infile.close();') before the other the second time i try to use
infile.open it ends up lumping me with a get()pointer position of '-1'
! Does anyone have any clues why?

Do both use the same stream object? If yes, you must first reset the
stream's state, because if it has reached the end of file, your eof bit
will still be set after closing and re-opening. Alternatively, just use an
own ifstream for each of your functions.
 
M

Moonlit

Hi,

I am not completely sure, but I think you probably tried to read past end of
file in the first one after which the error bit is set.

Using then the same on the second still leaves the object in an error
condition. Usually it is nicer to use two different objects.



Regards, Ron AF Greve

http://moonlit.xs4all.nl
 
P

Pete

Thanks a bunch for your advice.
Yes both do use the same object and unfortunately both have to use the
same stream object and unfortunately they have to beacause they both
share the functions for extracting the names, Latitudes and Longitudes
of the beacons (i suppose i could seperate them but i like the
simplicity of the previous method)
 
R

Rolf Magnus

Pete said:
Thanks a bunch for your advice.
Yes both do use the same object and unfortunately both have to use the
same stream object and unfortunately they have to beacause they both
share the functions for extracting the names, Latitudes and Longitudes
of the beacons (i suppose i could seperate them but i like the
simplicity of the previous method)

Actually, I'd say it's simpler to create the stream within the function as
local variable. Anyway, you can reset the stream's state with
infile.clear().
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top