Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Petit soucis en C, 5min chrono la résolution



  1. #1
    fmr130

    Petit soucis en C, 5min chrono la résolution


    ------

    Salut tous le monde,

    je suis pas un grand spécialiste en C et donc j'ai un petit soucis qui je pense il vous faudra pas plus de 5 min pour me dire ou est mon erreur.


    Habituellement pour ouvrir un fichier je fais ça :

    Code HTML:
    char ancien[100], nouveau[100]; /* noms des fichiers                  */
       FILE *infile, *outfile;         /* poiteur sur les fichiers           */  
       char c;                         /* c pour déplacer le curseur dans le */
                                       /* fichier ouvert                     */
    
       /* Ouvrir le fichier à modifier                                       */
       /* ------------------------------------------------------------------ */ 
       do                           
       {
          printf("Entrez le nom du fichier a modifier : ");
          scanf("%s", ancien);  
          infile = fopen(ancien, "rb"); /* ouvrir en binaire pour lire CR   */
          if (!infile)                  /* Verifie que le fichier existe    */
          printf(" Impossible d'ouvrir le fichier: %s.\n", ancien);
       }
       while (!infile);

    Mais aujourd'hui je souhaiterai modifier ce programme pour éviter à quelqu'un de taper l'adresse du fichier. En effet mon fichier sera toujours au même endroit et je souhaite juste récuperer des valeurs
    dans ce fichier.
    donc ça donne :

    Code HTML:
    char fichier_init[1000];
       FILE *infile;
    
       fichier_init[] = {"C:/PROJET/xxxx/xxx.txt"};
       infile = fopen(fichier_init, "rb"); /* ouvrir en binaire pour lire CR   */
    voila j'ai donc un soucis pour mettre mon adresse dans le char...

    Merci d'avance.

    -----

  2. Publicité
  3. #2
    fmr130

    Re : Petit soucis en C, 5min chrono la résolution

    ça y est j'ai trouvé!!!

    Code HTML:
    File *infile;
    infile = fopen("C:\PROJET\xxxx\xx.txt", "rb");
    et voili

  4. #3
    Philou67

    Re : Petit soucis en C, 5min chrono la résolution

    Si tu tiens à utiliser une variable pour le nom de ton fichier (ce qui est recommandé si tu l'utilises à plusieurs endroits dans ton programme), ton dispose de différentes moyens pour cela (par ordre de préférence) :
    Code:
    FILE *infile;
    const char *fichier_init = "C:\\PROJET\\xxxx\\xx.txt";
    infile = fopen(fichier_init, "rb");
    Code:
    FILE *infile;
    const char fichier_init[] = "C:\\PROJET\\xxxx\\xx.txt";
    infile = fopen(fichier_init, "rb");
    Code:
    FILE *infile;
    char fichier_init[1000];
    strcpy(fichier_init, "C:\\PROJET\\xxxx\\xx.txt");
    infile = fopen(fichier_init, "rb");
    Attention également à antislasher les antislash.
    :'( Plus j'apprends, et plus je mesure mon ignorance

  5. #4
    SuperTux

    Re : Petit soucis en C, 5min chrono la résolution

    Petite remarque : mieux vaut prendre l'habitude d'utiliser strncpy, même lorsque les données ne viennent pas de l'exterieur. L'utilisation de strcpy est la première chose à regarder si l'on veut trouver des buffers overflows dans un source en C...

  6. A voir en vidéo sur Futura
  7. #5
    SuperTux

    Re : Petit soucis en C, 5min chrono la résolution

    PS: D'ailleur pareil pour le char ancien[100] / scanf("%s", ancien); remplacer par scanf("%99s", ancien); si l'on tient vraiment à utiliser scanf.

  8. #6
    Philou67

    Re : Petit soucis en C, 5min chrono la résolution

    On est d'accord supertux. A utiliser ainsi :
    Code:
    strncpy(fichier_init, "C:\\PROJET\\xxxx\\xx.txt", sizeof(fichier_init));
    :'( Plus j'apprends, et plus je mesure mon ignorance

  9. Publicité

Discussions similaires

  1. Un petit soucis!
    Par kisakisa77 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 27/02/2009, 18h44
  2. petit soucis de DM
    Par elodie08-41 dans le forum Mathématiques du collège et du lycée
    Réponses: 9
    Dernier message: 10/09/2008, 21h11
  3. Suites : petit soucis
    Par misteriio dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 03/09/2008, 21h35
  4. Petit soucis...
    Par Johan.D dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 8
    Dernier message: 12/03/2007, 19h34
  5. Petit soucis ac ma TI 89
    Par LoTus-LeYdI dans le forum Dépannage
    Réponses: 6
    Dernier message: 25/12/2004, 08h40
Découvrez nos comparatifs produits sur l'informatique et les technologies.