Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #57933

Re: I need to vent some steam

From Bartc <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: I need to vent some steam
Date 2015-03-06 16:50 +0000
Organization A noiseless patient Spider
Message-ID <mdclsa$urj$1@dont-email.me> (permalink)
References <20150305170109.221d04fe@geostat.dk> <jrjifah6uj9qlqsu758t9mg54odkq82528@4ax.com> <mdc08d$5mu$1@dont-email.me> <majjfap1nrvc5rb8rh7frcbt8kgicr0hh3@4ax.com>

Show all headers | View raw


On 06/03/2015 16:03, Geoff wrote:
> On Fri, 06 Mar 2015 10:41:57 +0000, Bartc <bc@freeuk.com> wrote:
>
>> On 06/03/2015 07:14, Geoff wrote:

>>> char *pint(char *buf, int len, int val) {

>>> int main(void) {
>>> 	char buf[5] = {'1','1','1','1','\0'};
>>> 	size_t len;
>>>
>>> 	len = sizeof(buf) - 1 ;
>>> 	pint(buf, len, 42);
>>> 	printf("Galactic Airlines GA%s\n", buf);
>>> 	pint(buf, len, 0xa);
>>> 	printf("Hexadecimal Air   HA%s\n", buf);
>>> 	return 0;
>>> }
>>
>> The bigger question is why use C for such an application, when there are
>> so many more apt languages to do this stuff.
>>
>
> C was the language chosen at the time the code was written. I'd like
> to know what languages you think might be appropriate.

Scripting ones, which can make strings jump through hoops with virtually 
no effort.

>> But even in C, what is wrong with:
>>
>> 	printf("Galactic Airlines GA%04d\n", 42);
>
> It's wrong for the simple reason it fails to adhere to the functional
> specification. It prints a _minimum_ of four digits, not _precisely_
> four digits.

I understand the original function to print exactly len digits. In the 
example above, len is 4.

> Your solution malfunctions when offered more than a
> four-digit decimal number such as 19999.

So does the example with a buffer of 5 characters and a len value of 4.

  The original code prints
> precisely the specified number of digits of the length argument and no
> more and therefore cannot "malfunction" in the manner of your
> solution. Please try again.

I suspect the original function wasn't intended to be truncating 
numbers. But you can get the same behaviour with printf with a minor 
adjustment:

	printf("Galactic Airlines GA%04d\n", n % 9999);


-- 
Bartc

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

I need to vent some steam Anders Wegge Keller <wegge@geostat.dk> - 2015-03-05 17:01 +0100
  Re: I need to vent some steam Morris Dovey <mrdovey@iedu.com> - 2015-03-05 10:32 -0600
  Re: I need to vent some steam Richard Heathfield <rjh@cpax.org.uk> - 2015-03-05 17:04 +0000
    Re: I need to vent some steam Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-03-05 17:42 +0000
    Re: I need to vent some steam glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-03-05 19:16 +0000
      Re: I need to vent some steam jacob navia <jacob@spamsink.net> - 2015-03-05 20:47 +0100
    Re: I need to vent some steam Anders Wegge Keller <wegge@geostat.dk> - 2015-03-05 20:52 +0100
    Re: I need to vent some steam Kaz Kylheku <kaz@kylheku.com> - 2015-03-05 22:20 +0000
  Re: I need to vent some steam Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-03-05 17:51 +0000
  Re: I need to vent some steam Kaz Kylheku <kaz@kylheku.com> - 2015-03-05 22:20 +0000
  Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-05 23:14 -0800
    Re: I need to vent some steam Bartc <bc@freeuk.com> - 2015-03-06 10:41 +0000
      Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-06 08:03 -0800
        Re: I need to vent some steam Bartc <bc@freeuk.com> - 2015-03-06 16:50 +0000
          Re: I need to vent some steam Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-03-06 15:32 -0800
          Re: I need to vent some steam Öö Tiib <ootiib@hot.ee> - 2015-03-07 07:59 -0800
            Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-07 16:22 -0800
              Re: I need to vent some steam James Kuyper <jameskuyper@verizon.net> - 2015-03-07 19:45 -0500
                Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-07 17:21 -0800
                Re: I need to vent some steam Bartc <bc@freeuk.com> - 2015-03-08 10:29 +0000
                Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-08 13:37 -0700
          Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-07 16:20 -0800
        Re: I need to vent some steam Anders Wegge Keller <wegge@geostat.dk> - 2015-03-06 17:54 +0100
          Re: I need to vent some steam Geoff <geoff@invalid.invalid> - 2015-03-06 09:58 -0800
    Re: I need to vent some steam Morris Dovey <mrdovey@iedu.com> - 2015-03-07 02:29 -0600
      Re: I need to vent some steam Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-03-07 11:01 +0000
      Re: I need to vent some steam Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-24 10:46 -0700
  Re: I need to vent some steam Richard Damon <Richard@Damon-Family.org> - 2015-03-06 08:34 -0500
    Re: I need to vent some steam Les Cargill <lcargill99@comcast.com> - 2015-03-06 08:17 -0600
      Re: I need to vent some steam Keith Thompson <kst-u@mib.org> - 2015-03-06 08:02 -0800
      Re: I need to vent some steam Richard Damon <Richard@Damon-Family.org> - 2015-03-06 22:38 -0500
    Re: I need to vent some steam Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-03-06 15:44 -0800
      Re: I need to vent some steam Ian Collins <ian-news@hotmail.com> - 2015-03-07 13:35 +1300
  Re: I need to vent some steam Ian Collins <ian-news@hotmail.com> - 2015-03-07 07:42 +1300
  Re: I need to vent some steam raltbos@xs4all.nl (Richard Bos) - 2015-03-06 22:51 +0000
  Re: I need to vent some steam Michael Angelo Ravera <maravera@prodigy.net> - 2015-03-06 16:48 -0800
  Re: I need to vent some steam Xcott Craver <xcottcraver@gmail.com> - 2015-03-09 08:52 -0700
    Re: I need to vent some steam Anders Wegge Keller <wegge@geostat.dk> - 2015-03-09 21:11 +0100
      Re: I need to vent some steam Kaz Kylheku <kaz@kylheku.com> - 2015-03-09 20:16 +0000
        Re: I need to vent some steam Anders Wegge Keller <wegge@geostat.dk> - 2015-03-09 21:38 +0100
          Re: I need to vent some steam Kaz Kylheku <kaz@kylheku.com> - 2015-03-09 20:54 +0000
            Re: I need to vent some steam David Brown <david.brown@hesbynett.no> - 2015-03-10 09:02 +0100
              Re: I need to vent some steam Robert Wessel <robertwessel2@yahoo.com> - 2015-03-10 05:34 -0500
        Re: I need to vent some steam Robert Wessel <robertwessel2@yahoo.com> - 2015-03-09 19:15 -0500
      Re: I need to vent some steam Keith Thompson <kst-u@mib.org> - 2015-03-10 07:55 -0700

csiph-web