Undelivered mail

MAILER%ALASKA.BITNET at CUNYVM.CUNY.EDU MAILER%ALASKA.BITNET at CUNYVM.CUNY.EDU
Sat Mar 12 21:26:02 AEST 1988


Subject:  Re: Don't use Scanf()

[Non-Deliverable:  User does not exist or has never logged on]

Reply-To: Info-C at BRL.ARPA

Received: From UWAVM(MAILER) by ALASKA with Jnet id 7390
          for SXJVK at ALASKA; Sat, 12 Mar 88 01:57 AST
Received: by UWAVM (Mailer X1.25) id 5026; Sat, 12 Mar 88 02:56:39 PST
Date:         Fri, 11 Mar 88 02:36:59 GMT
Reply-To:     Info-C at BRL.ARPA
Sender:       Info-C List <INFO-C at NDSUVM1>
From:         Roland McGrath <rk9005 at cca.ucsf.EDU>
Subject:      Re: Don't use Scanf()
Comments: To: info-c at brl-smoke.arpa
To:           Vic Kapella <SXJVK at ALASKA>

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