Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!spool.mu.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!magnus.ircc.ohio-state.edu!tut.cis.ohio-state.edu!abvax!iccgcc!browns From: browns@iccgcc.decnet.ab.com (Stan Brown) Newsgroups: comp.lang.c Subject: Re: Printing plural forms. Message-ID: <3404.27c905aa@iccgcc.decnet.ab.com> Date: 25 Feb 91 17:40:10 GMT References: <1991Feb19.104810.549@ZYX.SE> <3331.27c23984@iccgcc.decnet.ab.com> Followup-To: comp.lang.misc Lines: 26 > In article <1991Feb19.104810.549@ZYX.SE>, arndt@zyx.ZYX.SE (Arndt Jonasson) writes: >> 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@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". Hey--this is all my opinion, nobody else's. Rely on it at your peril. email: browns@iccgcc.decnet.ab.com Stan Brown, Oak Road Systems, Cleveland, Ohio, USA +1 216 371 0043