On Thu, 7 Dec 1995, brian (b.c.) white wrote: > > for (ksnum=0; 1; c=fgets(buf,sizeof(buf),stdin)) { > > The third thing in the "for" structure only gets executed at end of > the loop. 'c' thus has an undefined value on the first iteration > which just happened to be NULL for you (hence the "(nil)" output). > GCC should have warned about this if you use "-Wall".
Whoops. Yes, that much is just me being an idiot. The bit about return values from scanf still stands, though. > Personally, I don't trust 'scanf' like this. It always seems to get > confused regarding end-of-line and so never scans where I want it to. > I always use 'fgets' followed by 'sscanf'. This, however, is not the > basis of your problem. Why you never get '-1' returned, I don't know. The fgets() in the 'for' line seems to be to flush the remaining few characters of the line before using scanf on the next line. Not quite how I would have written it, but it's always worked up until this version of libc. Steve Early [EMAIL PROTECTED]