SA-MP Forums Archive
Enums opcionales - sscanf - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Enums opcionales - sscanf (/showthread.php?tid=593208)



Enums opcionales - sscanf - GranaT3 - 02.11.2015

Ya que en la secciуn inglesa nadie pudo ayudarme, la publico aquн. Tengo el siguiente cуdigo:

pawn Код:
sscanf("1 2 3 4", "E<ii-i-i>(20,30)", quiet_enum);


    printf("%i value 1", quiet_enum[value_1]);
    printf("%i value 2", quiet_enum[value_2]);
    printf("%i value 3", quiet_enum[value_3]);
    printf("%i value 4", quiet_enum[value_4]);
la cual imprimirнa "20-30-0-0", pero me daria el siguiente error en la consola: sscanf error: Insufficient default values.
Vale, yo lo puedo arreglar con el siguiente cуdigo:

pawn Код:
sscanf("1 2 3 4", "E<ii-i-i>(20,30,40,50)", quiet_enum);


    printf("%i value 1", quiet_enum[value_1]);
    printf("%i value 2", quiet_enum[value_2]);
    printf("%i value 3", quiet_enum[value_3]);
    printf("%i value 4", quiet_enum[value_4]);
Pero me imprimirнa "1-2-0-0", y no "20-30-0-0", este ъltimo es como quiero que se imprima. їHay alguna forma de realizarlo sin que te dй error el sscanf?. Gracias.


Respuesta: Enums opcionales - sscanf - GranaT3 - 03.11.2015

Bueno por si alguien tiene algъn dia el mismo problema, dejare la soluciуn.

Al parecer es un fallo del SSCANF, asi que para poder realizar este tipo de enums opcionales y ademбs agregarle valores default, se ha de tener el dato del sscanf (const data[]) vacio (sin nada). Ejemplo:

pawn Код:
sscanf("", "E<ii-i-i>(20, 30, 40)", quiet_enum);
їPor quй no "0 0 0 0"?, porque el 0 tambiйn es tomado como un valor, lo cual entonces imprimiria "0-0-0-0". Probado y certificado.

Edit: Sin olvidarse de que los valores default tienen que ser como minimo tres (3) para que no salte el error de "Insufficient defaults value".