[[ C ]] Rename avec Scanf

Résolu
lolovahagn Messages postés 71 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
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
A voir également:

3 réponses

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut,

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

Cdlt
0
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
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
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
fiddy Messages postés 11653 Statut Contributeur 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