Non, ce n'est pas vraiment un bon moyen. Si vous voulez juste les numéros un numéros, à savoir que int
normales valeurs, puis utilisez l'opérateur de conversion "%d"
au lieu et ont vos variables soient normales int
variables, vous passez ensuite à sscanf
en utilisant l'adresse de l'opérateur-&
. Comme dans
int num1;
int num2;
int num3;
int num4;
sscanf(str, "B%d,B%d,B%d,B%d", &num1, &num2, &num3, &num4);
Si vous d'autre part voulez les chiffres sous forme de chaînes, puis utilisez tableau au lieu des pointeurs:
char num1[2]; // Two characters is enough for a single-character string, plus terminator
char num2[2];
char num3[2];
char num4[2];
sscanf(str, "B%1s,B%1s,B%1s,B%1s", num1, num2, num3, num4);
Le format "%1s"
dit sscanf
en lecture seule un signle caractère.
En outre, vous devriez probablement vous assurer que le sscanf
appel effectivement analysé l'entrée correctement. Cela peut être fait en vérifiant ce que sscanf
retours:
if (sscanf(str, "B%d,B%d,B%d,B%d", &num1, &num2, &num3, &num4) == 4)
{
// All okay
}
else
{
// Something went wrong
}
Pourquoi essayez-vous pas vous-même d'abord, et puis * * poser une question concernant les problèmes que vous pourriez rencontrer? – ilim
quelle sortie vous avez après avoir exécuté le code ci-dessus? – LethalProgrammer
Réponse courte: non. Et votre code est faux, car 'num1' etc. sont des pointeurs non-initiés. –