[C] Probleme avec strcat
Résolu/Fermé
mybox
Messages postés
47
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
25 octobre 2010
-
15 déc. 2008 à 18:55
mybox Messages postés 47 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 25 octobre 2010 - 16 déc. 2008 à 19:34
mybox Messages postés 47 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 25 octobre 2010 - 16 déc. 2008 à 19:34
3 réponses
Wardog
Messages postés
389
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2009
159
15 déc. 2008 à 19:31
15 déc. 2008 à 19:31
Bonsoir,
A cette ligne:
strcat(donnees,largeur); // changer le int en char
donnees est de type char* et largeur de type int.
Tu ne peux pas concaténer directement un char* et un int.
En effet la fonction strcat prend en paramètre deux chaines de caractères (char*)
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strcat.3.html
Il faut que tu convertisse la variable largeur de type int en char*.
Tu peux recoder une fonction qui le fait ou utiliser sprintf:
sprintf(chaine,"%d",i);
où char* chaine est ta chaine de destination et i l'entier int à convertir.
A cette ligne:
strcat(donnees,largeur); // changer le int en char
donnees est de type char* et largeur de type int.
Tu ne peux pas concaténer directement un char* et un int.
En effet la fonction strcat prend en paramètre deux chaines de caractères (char*)
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strcat.3.html
Il faut que tu convertisse la variable largeur de type int en char*.
Tu peux recoder une fonction qui le fait ou utiliser sprintf:
sprintf(chaine,"%d",i);
où char* chaine est ta chaine de destination et i l'entier int à convertir.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
15 déc. 2008 à 21:09
15 déc. 2008 à 21:09
Wardog a tout dit.
Le plus simple ici en effet est d'utiliser sprintf ou encore mieux snprintf.
Exemple :
Le plus simple ici en effet est d'utiliser sprintf ou encore mieux snprintf.
Exemple :
#include <stdio.h> /*scanf, printf*/ #include <string.h> /*strcpy, strcat*/ int main(void) { FILE *p; /* pointeur sur FILE */ char donnees[255]; int i, largeur, hauteur, calc; printf("Largeur de l'image : "); scanf("%d", &largeur); printf("Hauteur de l'image : "); scanf("%d", &hauteur); snprintf(donnees, sizeof donnees,"P2 %d %d 20",largeur, hauteur); //ou sprintf(donnees, "P2 %d %d 20",largeur, hauteur); puts(donnees); // affiche pas les nb ; prob relation integer et chaine ? system("pause"); return 0; }
mybox
Messages postés
47
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
25 octobre 2010
4
16 déc. 2008 à 19:34
16 déc. 2008 à 19:34
ca marche !
merci pour votre aide ;)
merci pour votre aide ;)