Mailinglist Archive: opensuse-programming (41 mails)

< Previous Next >
Re: [suse-programming-e] warning: flag `0' used with type `s'
  • From: Sebastian Ferro <sferro@xxxxxxxxx>
  • Date: Fri, 8 Jul 2005 18:05:37 -0300
  • Message-id: <2a48462e0507081405ef6f8e0@xxxxxxxxxxxxxx>
2005/7/8, Martin Llanos <martinllanos@xxxxxxxxx>:
> I have a problem when compiling with GCC - Linux
> I obtain result ==> szValor:[ 34] (GCC 2.95 > - Linux)
> when I want to obtain ==> szValor:[00034] (xlC - AIX & MSVC)
> An example detail :
> ==============
>
> 1) SOURCE:
> #include "stdio.h"
>
> int main()
> {
> char szValor[44];
> sprintf(szValor, "34");
> printf("szValor:[%05s]\n", szValor);
> return (0);
> }
>
> 2) COMPILACION:
> gcc -Wall prueba.c -o prueba
>
> 3) MENSAJE WARNING:
> prueba.c:7: warning: flag `0' used with type `s'
>
> SFV52@sfctrl:/sfctrl> prueba
>
> 4) EJECUCION REAL:
> szValor:[ 34]
>
> 5) EJECUCION ESPERADA:
> szValor:[00034]
>

Seguramente estas acostumbrado a programar en algun Solaris.
He probado el codigo en un SuSE 9.2 y en un Solaris 9.
En Solaris 9 imprime szValor:[00034]
y en linux imprime: szValor:[ 34]

Por qué?
Me imagino porque el "%05s" (rellenar con 0 a la izquierda) no está documentada
en ningun lado.
Tal vez lo que hicieron el compilador de Solaris, le pusieron esta
característica que
no esta definida en el ANSI C.

< Previous Next >
List Navigation
References