concatenation de string et d'integer

concatenation de string et d'integer - C - Programmation

Marsh Posté le 24-10-2005 à 16:00:45    

Bonjour,
Je voudrais concatener un char avec un int puis un char ... j'ai essayé sans succès :
 

Code :
  1. int file_nb = 0;
  2. char cfile_nb[100];
  3. char output_filename;
  4. ...
  5. if(output_file == NULL){
  6.                 file_nb++;
  7.                 sprintf(cfile_nb, "%d", file_nb);
  8.                 output_filename = strcat(strcat("./ftp_", cfile_nb), ".txt" );
  9.                 output_file = fopen(*output_filename, "a" );
  10. }


 
Si quelqu'un pouvait me donner quelques conseils ... d'avance merci

Reply

Marsh Posté le 24-10-2005 à 16:00:45   

Reply

Marsh Posté le 24-10-2005 à 16:03:20    

man strcat

Reply

Marsh Posté le 24-10-2005 à 17:14:55    

Pas mieux.
Ah, si : vu que tu dois déjà utiliser sprintf() (et que output_filename à cet endroit), strcat() est inutile.
Pour rappel, sprintf() fonctionne exactement comme printf(), sauf qu'au lieu d'écrire sur la sortie standard, ça écrit dans une variable.
 
Et utilise PATH_MAX (défini dans limits.h) pour la définition de la variable cfile_nb, 100 c'est bien trop peu en longueur.
 
EDIT : euuh, c'est quoi cette étoile qui traine dans ton fopen() ?  [:pingouino]  
Et puis output_filename c'est pas en char qu'il faut le définir, hein. Soit en char[], comme cfile_nb, soit en char* avec le malloc() qui va bien (ici je préfèrerais la première solution, à toi de voir)


Message édité par Elmoricq le 24-10-2005 à 17:26:00
Reply

Marsh Posté le 24-10-2005 à 18:17:15    

strcat et absuolument inutile comme l'a dit Elmoricq. Mais si tu veux l'utiliser, tu ne peux pas passer une chaine constante comme premier parametre. Le premier parametre doit etre un char * qui pointe vers quelque chose de suffisament grand pour contenir la chaine complete.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed