C++ : Erreur

Résolu
Bonjour,

Langage : C++

Code :
char line[100];
if (strcmp(line[j],"0")!=0)
{
printf(ft,"%s",line[j]);
}

Erreur : c++ invalid conversion from 'char' to 'const char*'

Je compte sur votre aide.

Epslione
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. L'argument %s représente une chaine de caractères, or tu essaye d'afficher un seul caractère.
    Essaye avec %c à la place de %s
    1
    1. retire le "[j]" dans ton printf pour voir.
      0
      1. Je redonne le code :

        Langage : C++

        Code :
        int j;
        char line[100];
        for (j=0;j<100;j++)
        {
        if (strcmp(line[j],"0")!=0)
        {
        printf("%s",line[j]);
        }
        }

        Erreur : c++ invalid conversion from 'char' to 'const char*'

        Merci!

        Epsilone
        0
        1. L'erreur est dans cette ligne : if (strcmp(line[j],"0")!=0)

          Merci.

          Epsilone.
          0
          1. salut,

            je crois bien que grizzlykiller a raison.
            change %s en %c
            0
        2. Contributeur
          pfff....
          revoi tes cours sur pointeurs tableau et types.
          line est un tableau de char, c'est en gros équivalent à un char*. Donc line[j] est de type char. Le prototype de strcmp est int strcmp(const char*, const char *) et toi tu lui donne un char comme premier argument.
          Si tu cherche à comparer des caractère,fait le directement :
          if (line[j]!='0')
          pareil pour le printf -> voir message <2>
          0
          1. Oui, ça marche CharSnipeur!

            Epsilone
            0
            1. Je récapitule :

              Langage :
              C++

              Code :
              int j;
              char line[100];
              for (j=0;j<100;j++)
              {
              if (strcmp(line[j],"0")!=0)
              {
              printf("%s",line[j]);
              }
              }

              Erreur :
              c++ invalid conversion from 'char' to 'const char*'

              Soluce :
              int j;
              char line[100];
              for (j=0;j<100;j++)
              {
              if (line[j]=='0')
              {
              printf("%c",line[j]);
              }
              }

              Epsilone
              0