A
Alessio
Hi,
please see following code:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0 ;
char szValue[] = "-a";
char *p = NULL;
double a = 0.0;
for ( i = 'a'; i <= 'z'; i++ )
{
a = strtod(szValue, &p);
/* check for error */
if ( *p && p )
{
printf("unable to convert %s\n", szValue);
}
else
{
printf("%s converted is %g\n", szValue, a);
}
++szValue[1];
}
return 0;
}
with lcc-win32 returns
unable to convert -a
unable to convert -b
unable to convert -c
unable to convert -d
-e converted is 0
unable to convert -f
unable to convert -g
unable to convert -h
unable to convert -i
unable to convert -j
unable to convert -k
unable to convert -l
unable to convert -m
unable to convert -n
unable to convert -o
-p converted is 0
unable to convert -q
unable to convert -r
unable to convert -s
unable to convert -t
unable to convert -u
unable to convert -v
unable to convert -w
unable to convert -x
unable to convert -y
unable to convert -z
Why -e and -p is converted to 0 ?
Should be considered a bug ? On PellesC which is based on lcc too, -i
and -n are converted to 0.
Is my "check for error" stuff good ?
Thank you.
please see following code:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0 ;
char szValue[] = "-a";
char *p = NULL;
double a = 0.0;
for ( i = 'a'; i <= 'z'; i++ )
{
a = strtod(szValue, &p);
/* check for error */
if ( *p && p )
{
printf("unable to convert %s\n", szValue);
}
else
{
printf("%s converted is %g\n", szValue, a);
}
++szValue[1];
}
return 0;
}
with lcc-win32 returns
unable to convert -a
unable to convert -b
unable to convert -c
unable to convert -d
-e converted is 0
unable to convert -f
unable to convert -g
unable to convert -h
unable to convert -i
unable to convert -j
unable to convert -k
unable to convert -l
unable to convert -m
unable to convert -n
unable to convert -o
-p converted is 0
unable to convert -q
unable to convert -r
unable to convert -s
unable to convert -t
unable to convert -u
unable to convert -v
unable to convert -w
unable to convert -x
unable to convert -y
unable to convert -z
Why -e and -p is converted to 0 ?
Should be considered a bug ? On PellesC which is based on lcc too, -i
and -n are converted to 0.
Is my "check for error" stuff good ?
Thank you.