[langage C] Exercice déplacement et renommer fichier

Exercice déplacement et renommer fichier [langage C] - C - Programmation

Marsh Posté le 18-12-2007 à 11:36:15    

bonjour a tous  :)  
 
alors voila j'ai un petit exercice en C que je dois effectuer mais j'ai beaucoup de mal voici le sujet:
 
Ecrire une commande dont l'executable sera déplacer et qui changera le nom d'un fichier passer en premier argument pour un nom spéifié en seon argument
 
Je pense qu'il faut utiliser lseek (pour le déplacement) et rename (pour le changement du nom de fichier)
 
A l'aide  :cry:


Message édité par yassinou949494 le 18-12-2007 à 11:36:53
Reply

Marsh Posté le 18-12-2007 à 11:36:15   

Reply

Marsh Posté le 18-12-2007 à 11:48:21    

Pas besoin de lseek(), rename() suffit.

Reply

Marsh Posté le 18-12-2007 à 11:53:46    

ha bon?

Reply

Marsh Posté le 18-12-2007 à 12:17:33    

je pensai a ca:
      #include <stdlib.h>
      #include <stdio.h>
      #include <string.h>  
       
      int main(int argc, char *argv[])
      {
      char nom[] = {0}, prenom[] = {0}, nomFichier[] = {0};
      FILE *fichier = NULL;    
      fopen("coordonnées.txt", "w" );
      if(fichier != NULL)
      {
      printf("veuillez saisir les renseignements \n\n" );
      printf("NOM : " );
      scanf("%s", nom);
      printf("PRENOM : " );
      scanf("%s", prenom);
   
      //ENREGISTREMENT DES COORDONNEES SAISI.
       
      fprintf(fichier, "NOM : %s\n\n" nom);
      fprintf(fichier, "PRENOM : %s\n\n" prenom);
       
      // saisi du nom du fichier.
       
      printf("VEUILLEZ DONNEZ UN NOM A VOTRE FICHIER\n\n" );
      scanf("%s", nomFichier);
       
      //modification du nom du fichier.
       
      rename("coordonnées.txt", "%s" nomFichier);    
      fclose(fichier);
      }
      return 0;

Reply

Marsh Posté le 18-12-2007 à 13:28:41    

yassinou949494 a écrit :

char nom[] = {0}, prenom[] = {0}, nomFichier[] = {0};


 
Nope, tu définis des chaînes de longueur 0 en faisant ça.
 

yassinou949494 a écrit :

scanf("%s", nom);


scanf() çaÿ le mal lorsqu'on ne sait pas utiliser convenablement les patterns et le code retour, il vaut mieux utiliser fgets() à la place.
 
Et puis je ne vois pas bien ce que viennent faire ces saisies par rapport au sujet que tu évoques dans ton premier post.
 

yassinou949494 a écrit :

     // saisi du nom du fichier.
       
      printf("VEUILLEZ DONNEZ UN NOM A VOTRE FICHIER\n\n" );
      scanf("%s", nomFichier);


 
Nope, la question te demande d'utiliser les arguments passés au programme, en tout cas c'est ce que je comprends.
Il faut que tu utilises les arguments passés à ta fonction main().
       

yassinou949494 a écrit :

rename("coordonnées.txt", "%s" nomFichier);    


 
man rename

Reply

Marsh Posté le 18-12-2007 à 20:05:58    

yassinou949494 a écrit :

je pensai a ca:
      #include <stdlib.h>
      #include <stdio.h>
      #include <string.h>  
       
      int main(int argc, char *argv[])
      {
      char nom[] = {0}, prenom[] = {0}, nomFichier[] = {0};
      FILE *fichier = NULL;    
      fopen("coordonnées.txt", "w" );
      if(fichier != NULL)
      {
      printf("veuillez saisir les renseignements \n\n" );
      printf("NOM : " );
      scanf("%s", nom);
      printf("PRENOM : " );
      scanf("%s", prenom);
   
      //ENREGISTREMENT DES COORDONNEES SAISI.
       
      fprintf(fichier, "NOM : %s\n\n" nom);
      fprintf(fichier, "PRENOM : %s\n\n" prenom);
       
      // saisi du nom du fichier.
       
      printf("VEUILLEZ DONNEZ UN NOM A VOTRE FICHIER\n\n" );
      scanf("%s", nomFichier);
       
      //modification du nom du fichier.
       
      rename("coordonnées.txt", "%s" nomFichier);    
      fclose(fichier);
      }
      return 0;


Au-moins il y a des commentaires.
 
En plus des remarques de Elmoricq, revois donc le lien qu'il est nécessaire d'avoir entre "fichier" et "fopen()" et demandes-toi comment "fichier" peut être différent de "NULL" en ligne 10 alors que tu l'initialises à "NULL" en ligne 8...


Message édité par Sve@r le 18-12-2007 à 20:07:06

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 18-12-2007 à 20:11:39    

Je ne l'avais même pas vu celui-ci, y en avait trop. [:ddr555]

Reply

Sujets relatifs:

Leave a Replay

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