Printing plural forms.

Terry Von Gease vongease at hplred.HP.COM
Wed Feb 27 08:23:59 AEST 1991


>>> We all have seen and, in various degrees, been irritated by texts such
>>> as:
>>> 	1 files were copied
>>> when it should have been:
>>> 	1 file was copied
>>> 
>>> I'd like to know: when programming, how do you avoid such errors? 
>
>In article <3331.27c23984 at iccgcc.decnet.ab.com>, 
>I stuck my coding pencil in my ear:
>>      printf("%d error%s copied\n", nfiles, nfiles?"s were":" was");
>> or
>>      printf("files copied: %d\n", nfiles);
>
>Several persons emailed to point out one or more of the the obvious errors
>in the first one.  I would correct it to
>       printf("%d file%s copied\n", nfiles, nfiles=1?" was":"s were");
>This assumes that "0 files were copied" is correct.  For that reason, and
>because it's less susceptible to bonehead errors like mine, I prefer the
>second form, which gives "files copied: 0", "files copied: 1", "files
>copied: 2".
>

and further compounding of a bonehead error...

>       printf("%d file%s copied\n", nfiles, nfiles=1?" was":"s were");
                                                ^^^^^^

how about ... nfiles==1?... instead?

Terry



More information about the Comp.lang.c mailing list