eof bit not set

mad_girl's Avatar, Join Date: Aug 2007
Go4Expert Member
why such two easy lines don work
char c;
while(!file.eof ())
{ file.read(c,1); cout<<c; }
the loop is infinite i don know why the eof bit is not set or what
DaWei's Avatar, Join Date: Dec 2006
Team Leader
You don't show how you're opening the file, so the fail bit is probably set, which means the eof bit will not be set. If you care to show some more code, feel free to do so.

If you show more code, and want a response, put the code in code tags.
mad_girl's Avatar, Join Date: Aug 2007
Go4Expert Member
Code:
string str2="test.txt";
ifstream file(str2.c_str (),ios::in);
and another question please when file.tellg() return -1?
Code:
while(file.tellg()<=lastEnd)
					{
						file.getline (temp,20,'=');
			if (strncmp(temp,varName.c_str(),varName.length())==0)
						{
							file.getline (X,20);
							return true;
						}
						file.ignore(30,'\n');
					}
when i debug this code and make it print lastEnd and file.tellg() values through the iteration of the loop every thing is fine until file.tellg() return -1 in the middle of the file so the loop doesn't end??!!!!!
DaWei's Avatar, Join Date: Dec 2006
Team Leader
Are you paying attention, and have you bothered to read the documentation for the functions you use?
mad_girl's Avatar, Join Date: Aug 2007
Go4Expert Member
i already did, but i don remember any thing telling me the code i sent is wrong.
thanks 4 help