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