Fonction rename ??
Utilisateur anonyme
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Salut,
Voila j'ai un souci dans mon code C. J'essaye toujours de renommer mon fichier musique.txt mais sa ne marche pas:
Voila mais sa marche pas :S et je ne vois pas du tout pourquoi .
Merci d'avance.
Voila j'ai un souci dans mon code C. J'essaye toujours de renommer mon fichier musique.txt mais sa ne marche pas:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
fichier = fopen("bibliotheque/morceaux/musique.txt", "a+");
//je suppose le fichier bien ouvert
//code de modification du fichier ^^
fclose(fichier);
char titre[100], nomTitre, nomDoc;
scanf("%s",titre);
nomTitre=strcat("bibliotheque/morceaux/",titre); //ajout d chemin relatif
nomDoc=strcat(nomTitre,".txt"); //ajout du .txt
rename("bibliotheque/morceaux/musique.txt",nomDoc);
return 0;
}
Voila mais sa marche pas :S et je ne vois pas du tout pourquoi .
Merci d'avance.
A voir également:
- Fonction rename ??
- Fonction si et - Guide
- Lupas rename - Télécharger - Gestion de fichiers
- A-pdf rename - Télécharger - PDF
- The rename - Télécharger - Gestion de fichiers
- A better finder rename - Télécharger - Divers Utilitaires
1 réponse
Salut,
char titre[100], nomTitre, nomDoc;
Tu déclares nomTitre en tant que simple caractère et non en tableau de char, de même pour nomDoc.
nomTitre=strcat("bibliotheque/morceaux/",titre);
La fonction strcat va concaténer la chaîne titre à la constante "bibliotheque/morceaux/" et renverra un pointeur sur l'expression modifiée. Segfault assuré.
Voici un exemple de strcat :
Comme tu peux le voir, le tableau dest contient suffisamment de place pour contenir les caractères d'extension. J'insiste bien sur ce point, car c'est à toi de bien vérifier cette condition, sinon cela va "segfaulter". Je te conseille donc vivement d'utiliser strncat.
Cdlt,
char titre[100], nomTitre, nomDoc;
Tu déclares nomTitre en tant que simple caractère et non en tableau de char, de même pour nomDoc.
nomTitre=strcat("bibliotheque/morceaux/",titre);
La fonction strcat va concaténer la chaîne titre à la constante "bibliotheque/morceaux/" et renverra un pointeur sur l'expression modifiée. Segfault assuré.
Voici un exemple de strcat :
char dest[15]="toto"; char *extension==".txt"; strcat(dest,extension);
Comme tu peux le voir, le tableau dest contient suffisamment de place pour contenir les caractères d'extension. J'insiste bien sur ce point, car c'est à toi de bien vérifier cette condition, sinon cela va "segfaulter". Je te conseille donc vivement d'utiliser strncat.
Cdlt,