ugliness in scanf(3)

Matt Crawford matt at oddjob.UUCP
Sun May 12 10:18:08 AEST 1985

In article <190 at mplvax.UUCP> cdl at mplvax.UUCP (Carl Lowenstein) writes:
>In article <10496 at brl-tgr.ARPA> gwyn at Brl.ARPA (VLD/VMB) writes:
>>If it ate the "failing" character, you could never see what it
>>was.  I think the routine was designed on the assumption that
>>the programmer would not be so stupid as to keep trying to
>>scan a chunk of input over & over with the same failing format.
>*mild flame*
>This programmer is so stupid as to expect to find the behavior
>of scanf documented in the manual.
>	carl lowenstein		marine physical lab	u.c. san diego

THIS programmer is not too arrogant to open the manual before telling
someone what's not in it:

SCANF(3S)	    UNIX Programmer's Manual		SCANF(3S)

     For example, .....

	  int i; float x; char name[50];
	  scanf("%2d%f%*d%[1234567890]", &i, &x, name);

     with input

	  56789	0123 56a72

     will assign 56 to i, 789.0	to x, skip `0123', and place the
     string `56\0' in name.  The next call to getchar will return
     `a'.                    ------------------------------------

If you make a mistake you can (a) admit it, (b) shut up, or (c)
prolong the argument and provide more entertainment.  I will choose
course (a) and admit that I am making a mistake by posting anything
at all on this subject.
Matt		University	crawford at
Crawford	of Chicago	ihnp4!oddjob!matt

More information about the Comp.lang.c mailing list