1. getc() function and end of file
- Posted by Ted Fines <fines at macalester.edu> Apr 06, 2001
- 353 views
Hello all, I'm trying to process a file, an image of a disk, actually. The file is about 1,450,000 bytes. Anyway, my program always stops after only reading about 38,400 bytes. It appears that getc(infile) is returning -1 (a ctrl-Z presumably), causing the program to quit. The thing is, its nowhere near the end of the file yet. How can I make getc(infile) keep going until it really reaches the end of the file? Do I have to first look at the D_SIZE attribute from the dir() function, then use a for loop to read all of the data, or is there another way? Thanks, Ted Fines Macalester College
2. Re: getc() function and end of file
- Posted by Derek Parnell <ddparnell at bigpond.com> Apr 06, 2001
- 348 views
Ted Fines wrote: > I'm trying to process a file, an image of a disk, actually. The file is > about 1,450,000 bytes. > > Anyway, my program always stops after only reading about 38,400 bytes. It > appears that getc(infile) is returning -1 (a ctrl-Z presumably), causing > the program to quit. My guess is that the fle contains a #1A character. This is a Crtl-Z and for files opened with mode "r", this will cause a premature End-Of-File (EOF) to be returned. Try opening the file with mode "rb" instead. Another approach is to use get_bytes() instead of getc(). ------ Derek Parnell Melbourne, Australia "To finish a job quickly, go slower."
3. Re: getc() function and end of file
- Posted by Euman <euman at bellsouth.net> Apr 06, 2001
- 351 views
Could you use something like this? include get.e include file.e object junk integer fn, file_length sequence seq seq = {} fn = open(" file_name " , "r") junk=seek(fn,-1) file_length=where(fn) junk=seek(fn,0) seq = append(seq, get_bytes(fn, file_length)) Euman ----- Original Message ----- From: "Ted Fines" <fines at macalester.edu> To: "EUforum" <EUforum at topica.com> Sent: Friday, April 06, 2001 16:40 Subject: getc() function and end of file > > > Hello all, > > I'm trying to process a file, an image of a disk, actually. The file is > about 1,450,000 bytes. > > Anyway, my program always stops after only reading about 38,400 bytes. It > appears that getc(infile) is returning -1 (a ctrl-Z presumably), causing > the program to quit. > > The thing is, its nowhere near the end of the file yet. How can I make > getc(infile) keep going until it really reaches the end of the file? Do I > have to first look at the D_SIZE attribute from the dir() function, then > use a for loop to read all of the data, or is there another way? > > Thanks, > Ted Fines > Macalester College > > > > > >
4. Re: getc() function and end of file
- Posted by David Cuny <euphoria_coder at HOTMAIL.COM> Apr 06, 2001
- 348 views
Ted Fines wrote: >Anyway, my program always stops after only reading about 38,400 bytes. It >appears that getc(infile) is returning -1 (a ctrl-Z presumably), causing >the program to quit. Did you open it in binary mode? If not, that could be your problem. -- David Cuny