Accés à un fichier en C

Résolu
Signaler
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005
-
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005
-
Bonjour à Tous

Comment lire en C un fichier en précisant le chemin d'accés ?

7 réponses

Messages postés
15187
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 novembre 2021
100
euh... pardon:

FILE * fichier = fopen("C:\\test\\donnee\\resultat.txt", "w"); // mode lecture

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Sujet abordé pour la x ème fois, fait une recherche.
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005

Bonjour,

J'ai cherché partout sans résultat,

j'apprécierai vraiement votre aide précieuse.
Messages postés
15187
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 novembre 2021
100
Trouvé sur MSDN:



/* FREAD.C: This program opens a file named FREAD.OUT and
 * writes 25 characters to the file. It then tries to open
 * FREAD.OUT and read in 25 characters. If the attempt succeeds,
 * the program displays the number of actual items read.
 */

#include <stdio.h>

void main( void )
{
   FILE *stream;
   char list[30];
   int  i, numread, numwritten;

   /* Open file in text mode: */
   if( (stream =  fopen( "fread.out", "w+t" )) != NULL )
   {
      for ( i = 0; i < 25; i++ )
         list[i] = (char)('z' - i);
      /* Write 25 characters to stream */
      numwritten = fwrite( list, sizeof( char ), 25, stream );
      printf( "Wrote %d items\n", numwritten );
      fclose( stream );

   }
   else
      printf( "Problem opening the file\n" );

   if( (stream = fopen( "fread.out", "r+t" )) != NULL )
   {
      /* Attempt to read in 25 characters */
      numread = fread( list, sizeof( char ), 25, stream );
      printf( "Number of items read = %d\n", numread );
      printf( "Contents of buffer = %.25s\n", list );
      fclose( stream );
   }
   else
      printf( "File could not be opened\n" );
}





Output


Wrote 25 items
Number of items read  = 25
Contents of buffer = zyxwvutsrqponmlkjihgfedcb





Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005

Voila, dans mon programme l'utilisateur doit saisir un chemin d'accés à un fichier par exemple "c:\ test \ donnee \ resultat.txt", le programme doit accéder à ce fichier et compter le nombre de ligne.

Mais je ne sais pas comment préciser ce chemin d'acces au programme (je suppose par fopen()) pour lire le fichier ?
Messages postés
15187
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 novembre 2021
100
Exact. Mais fais attention à une chose: dans les chaines de caractères, il faut doubler le '\'.

par exemple, pour accéder à "C:\test\donnee\resultat.txt", il faut faire:



fopen("C:\\test\\donnee\\resultat.txt");

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005

MERCI !