[[ C ]] Rename avec Scanf

Résolu/Fermé
lolovahagn Messages postés 48 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 29 octobre 2010 - 6 mai 2009 à 20:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 mai 2009 à 11:12
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
6 mai 2009 à 20:40
Salut,

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

Cdlt
0
lolovahagn Messages postés 48 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 29 octobre 2010
7 mai 2009 à 17:54
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
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 48 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 29 octobre 2010
8 mai 2009 à 09:37
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
8 mai 2009 à 11:12
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