C++ : Erreur [Résolu/Fermé]

Messages postés
133
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2009
- - Dernière réponse : 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
Afficher la suite 

7 réponses

Meilleure réponse
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58665 internautes nous ont dit merci ce mois-ci

Messages postés
1689
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 juillet 2012
459
0
Merci
retire le "[j]" dans ton printf pour voir.
Messages postés
133
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2009
8
0
Merci
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
Messages postés
133
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2009
8
0
Merci
L'erreur est dans cette ligne : if (strcmp(line[j],"0")!=0)

Merci.

Epsilone.
mich62120
Messages postés
632
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6 -
salut,

je crois bien que grizzlykiller a raison.
change %s en %c
Messages postés
9701
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
7 juillet 2019
1077
0
Merci
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>
Messages postés
133
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2009
8
0
Merci
Oui, ça marche CharSnipeur!

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