[C con Clase] sscanf

Steven Davidson srd4121 en njit.edu
Lun Jul 16 21:17:50 CEST 2012


Hola José Luis,

On 7/16/2012 8:31 AM, José Luis Torre wrote:
> Hola:
>
> Estoy probando a realizar una serie de lecturas y en concreto no me
> funciona la siguiente:
>
> {
>       char a[50];
>       char c = 0;
>       int importe=0;
>
>       sscanf("Escuela Universitaria de Ingenieria Industrial|15001",
> "%[^|]s%c%d", a, &c, &importe);
>       printf("%s;%c;importe==%d\n", a, c, importe);
>
> }
> Quiero leer espacios en blanco en la variable a (esto lo hace bien),
> pero no consigo que el carácter c lea el símbolo pipe e importe el
> siguiente valor numérico.
>

El problema es que colocas una 's' después del cierre del corchete. 
Debería ser esto:

sscanf( "Escuela Universitaria de Ingenieria Industrial|15001",
         "%[^|] %c %d", a, &c, &importe );

Ahora funcionará como quieres.

La otra solución es usar 'strtok()' para separar las cadenas que nos 
interesan y luego manipularlas para obtener la información que queremos.


Espero haber aclarado la duda.

Steven





Más información sobre la lista de distribución Cconclase