Concaténation en dynamique

*ManU* -  
 *ManU* -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
*ManU*
 
Sa marche nikel !
Je me disai bien que je n'utilisai pas les bonnes fonctions de cast...!
merci pour ton aide
0