Petit erreur

Bonjour,
pourquoi cette ecriture ne mache pas? qui peut m'aider ou de proposer une autre ecriture equivalente,merci.
on char s[100];int x;float pht ; int ttv; int pdp2;
sscanf(s+pdp2,"%7.3f:%3d",&pht,&x,&ttv);

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. d'abord il faut pas oublier d'initialiser variable pdp2
    +
    dans sscanf il y a un erreur tu as pas entrer ttv car tu as pas faire &d
    donc il faut faire:
    sscanf(s+pdp2,"%7.3f:%3d:%3d",&pht,&x,&ttv);
    1. pas c'est pas besoin de faire &x dans sscanf
      seulement faire:
      sscanf(s+pdp2,"%7.3f:%3d",&pht,&ttv);
      1. ça marche pas avec %7.3f ça marche sauf avec %f et moi je veux l'afficher sous cette forme par exemple 1000.000 et non pas 1000.000000
      2. pas c'est simple tu es pas besoin de faire %7.3f fait seulement %.3f
        :D
      3. Contributeur
        Pas de %7.3f dans ton sscanf. Il faut mettre tout simplement %f. Ta variable vaudra 1000, et ça t'y peux rien. C'est même du binaire en fait.
        En revanche, à l'affichage, donc avec printf() (ou autre), tu peux utiliser : printf("%7.3f\n", pht);