Concaténation en dynamique

Fermé
*ManU* - 16 juil. 2009 à 05:03
 *ManU* - 16 juil. 2009 à 23:35
Bonjour,
je fais des algorithmes de traitement d'image pour la télédétection et je me retrouve face à un petit problème de concaténation "dynamique" de chaîne...
En fait je me suis constitué une base de donnée d'imagettes qu'il faut que j'appelle dans un programme avec leur nom en variable d'entrée. Vu qu'il y en à pas mal (environ 1500) j'aimerai le faire de façon dynamique.
Voici mon code:

char prefix [ ] = "./Textures_labels/Quickbird/30_R3C1/_T0/0/tif/vol30_R3C1_T00_I0";
char type1 [ ] = ".tif";
char type2 [ ] = ".txt";

...etc...

for ( j=0 ; j<10 ; j++ ) // Loop for image changing
{
// Constructing output & input file name
char* input = prefix ;
char* name = prefix ;
char* number = j ;

strcat ( input, number ) ;
strcat ( input, type1 ) ; // Input image file name

strcat ( name, number ) ;
strcat ( name, type2 ) ; // Output text file name

... etc

}

Et voici l'erreur générée par le compilateur:
" erreur: invalid conversion from «int» to «char*» "

Peut être faut-il repenser la conception du programme pour contourner cet obstacle...?

Merci d'avance pour votre aide

2 réponses

dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 5 615
16 juil. 2009 à 09:22
hello
char* number = j ;
j est un entier, number un pointeur !!
il faut convertir j en chaine de caractère avec sprintf avant de faire strcat
attention aussi avec strcat que l'espace soit disponible pour ajouter une chaine
0
Sa marche nikel !
Je me disai bien que je n'utilisai pas les bonnes fonctions de cast...!
merci pour ton aide
0