Don't use Scanf()

Roland McGrath rk9005 at cca.ucsf.edu
Fri Mar 11 12:36:59 AEST 1988


One real stupidity I've seen many, many times is the
over-use of printf.  The printf functions have their uses,
and they do their job quite well, but please know what these
uses are!!

For example:
	printf("Hello world!\n");
Haven't you ever heard of puts????
	puts("Hello world!");	/* note the newline is appended	*/
or
	printf("hi");
try fputs:
	fputs("hi", stdout);	/* no newline appended	*/
What's that?  Oh, now you have to include <stdio.h> so
you can get the proper declarations of all these functions anyway?
Poor baby!

And the ultimate stupidity:
	printf("\n");
Get a brain!!!!!  You're using the function that can do complex
data formatted output to write one bleeping character!!!!!
Try
	putchar('\n');
If you include <stdio.h>, this will probably end up being a macro
that will write it out very fast.

I have even seen:
	sprintf(buf, "constant string");
Hey, Mr. Power-Programmer, ever heard of strcpy????


In general, if there's no format spec, don't use printf!!!!!!
-- 
	Roland McGrath
ARPA: roland at rtsg.lbl.gov roland at lbl-rtsg.arpa
UUCP: ...!ucbvax!lbl-rtsg.arpa!roland



More information about the Comp.lang.c mailing list