C++ : Erreur

Résolu/Fermé
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 - 4 juin 2008 à 16:47
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 - 4 juin 2008 à 17:22
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

7 réponses

grizzlykiller
4 juin 2008 à 16:50
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
Remad Messages postés 1662 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 27 juillet 2012 693
4 juin 2008 à 16:48
retire le "[j]" dans ton printf pour voir.
0
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
4 juin 2008 à 16:55
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
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
4 juin 2008 à 17:02
L'erreur est dans cette ligne : if (strcmp(line[j],"0")!=0)

Merci.

Epsilone.
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
4 juin 2008 à 17:05
salut,

je crois bien que grizzlykiller a raison.
change %s en %c
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 juin 2008 à 17:08
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
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
4 juin 2008 à 17:14
Oui, ça marche CharSnipeur!

Epsilone
0
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
4 juin 2008 à 17:22
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