Hrrm... your question and the code seem to contradict each other.
Firstly, you are assigning hex values to the characters in your array.
Secondly, you are printing the values stored in the array as hex values by
specifying %02x.
I think you meant to ask why you are getting the preceding trail of
...'s. If that's the case, it's because you are assigning values to
signed character variables and printing them as unsigned hex values. Thus,
when you assign values greater than 127 (starting with 88), you are
overriding the sign of the character. To get the output you would expect,
simply declare a as an unsigned character array.
e.g. unsigned char a[LEN_ARRAY+1];
- Original Message -
From: <[EMAIL PROTECTED]>
To: "freebsd-questions" <[EMAIL PROTECTED]>
Sent: Saturday, June 21, 2003 7:14 AM
Subject: is this a FBSD printf bug?
> FBSD 4.8
>
> i hope this isn't a question based on extreme
> ignorance - i haven't programmed in C in a
> long time, and i don't have another machine
> to test this on. i can't understand why
> the output of the following code produces
> "ints" when given variables of type "char",
> so it looks like a bug to me ...
>
> #include
>
///
> int main(int argc, char *argv[]) {
>
> #define LEN_ARRAY 16
> char a[LEN_ARRAY+1];
> int i;
>
> a[0]=0x00;
> a[1]=0x11;
> a[2]=0x22;
> a[3]=0x33;
> a[4]=0x44;
> a[5]=0x55;
> a[6]=0x66;
> a[7]=0x77;
> a[8]=0x88;
> a[9]=0x99;
> a[10]=0xaa;
> a[11]=0xbb;
> a[12]=0xcc;
> a[13]=0xdd;
> a[14]=0xee;
> a[15]=0xff;
>
> for ( i = 0; i < LEN_ARRAY; ++i ) printf("[%02i]%02x\n", i, a[i]);
> }
>
///
> //
> // OUTPUT:
> //
> // [00]00
> // [01]11
> // [02]22
> // [03]33
> // [04]44
> // [05]55
> // [06]66
> // [07]77
> // [08]ff88 ???
> // [09]ff99 ???
> // [10]ffaa ???
> // [11]ffbb ???
> // [12]ffcc ???
> // [13]ffdd ???
> // [14]ffee ???
> // [15] ???
> ___
> [EMAIL PROTECTED] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to
"[EMAIL PROTECTED]"
>
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"