[[ C ]] Rename avec Scanf

Résolu
lolovahagn Messages postés 71 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai un petit problème : je programme en C.
Et je voudrai utilisé la fonction rename pour renommer un fichier mais avec un scanf.

Ex :

Char nomDoc [100];
scanf ("%s", nomDoc);
rename ("test.txt", "%s.txt", nomDoc);

Merci d'avance

--
:) 
Configuration: Windows Xp Familiale
Internet explorer 7
mon materiel :
1 partie
http://www.casimages.com/img.php?i=080430030851283112009889.jpg
2 partie
http://www.casimages.com/img.php?i=080430031137283112009898.jpg

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,

    char nomDoc[100];
    scanf("%99s", nomDoc);
    rename("test.txt", nomDoc); 
    

    Cdlt
    0
  2. lolovahagn Messages postés 71 Statut Membre
     
    Ca marche
    sauf que si je tape : test
    il me renome test.txt ==> test donc sans format ( se qui me donne un ficher illisible ) !!
    0
    1. loupius
       
      Ben oui c'est bizarre que le programme ne fasse que ce que tu lui demandes ! Il pourrait quand même réfléchir et ajouter l'extension de lui-même ! ;-)
      Bon moi finalement ça me rassure... et toi il faut que tu modifies ton programme; c'est à toi de gérer cette extension.
      D'autre part ton fichier n'est pas devenu illisible; c'est le système qui fait que lorsque tu cliques sur ton fichier qui n'a pas d'extension, il ne trouve pas d'association qui lui dit quoi faire de ce fichier. Tu as deux solutions: soit changer l'association, soit changer le nom du fichier.
      Bon choix.
      0
  3. lolovahagn Messages postés 71 Statut Membre
     
    C'est bon j'ai trouvé la solution :
    Je crée une variable char puis je concatène les deux chaine:

    char chaine1[100] = ".txt", chaine2[] = "test";

    strcat(chaine1, chaine2); // On concatène chaine2 dans chaine1

    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Salut,
      Ca serait mieux si t'inversais le contenu de tes tableaux. Sinon chaine1 contiendra .txttest au lieu de test.txt.
      Ce qui donne :
      char chaine1[100] = "test", chaine2[] = ".txt";
      
      strcat(chaine1, chaine2); // On concatène chaine2 dans chaine1 
      0