Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



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

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

  1. fmr130

    Date d'inscription
    janvier 2007
    Âge
    29
    Messages
    44

    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.
     


    • Publicité



  2. fmr130

    Date d'inscription
    janvier 2007
    Âge
    29
    Messages
    44

    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
     

  3. Philou67

    Date d'inscription
    janvier 2006
    Localisation
    Krùmm Elsàss
    Âge
    47
    Messages
    17 037

    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
     

  4. SuperTux

    Date d'inscription
    septembre 2007
    Messages
    661

    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...
     

  5. SuperTux

    Date d'inscription
    septembre 2007
    Messages
    661

    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.
     


    • Publicité



  6. Philou67

    Date d'inscription
    janvier 2006
    Localisation
    Krùmm Elsàss
    Âge
    47
    Messages
    17 037

    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
     


    • Publicité




Poursuivez votre recherche :




Sur le même thème :




 

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