lecture d'un fichier en C
Bonjour,
dans le cadre de mon projet , j'aurai besoin s'il exisste des fonctions adaptées pour lire un fichier de ce type:
DEST NDEST SELO DSTATE EC IARR PRI MDC DEST.ATTR DEST.SSET
1 IN09702 PAD A N N ORD 0 - 0
TCR CNP NL PBXI PA IA PRESTR PPERC PSDEST PCHI CDUR
N N 0 - N N N - - - DEF
ALT SDTYPE P(%) SRESTR CAT QA DCA SPCH CNT ALT.ATTR
0 A - N A N - 0 - -
SDEST NSDEST RT NBR CT SP SRCL CANA MNL
1 IN09702 SPR 1101 SC 3 N - 0
LANGID
0
CHI CORG CHA NCHA ICAM NCAM CP DC CM
1 0 1 CDRCHG - - OE NDC PLS
SPM SPA TCI NCB PT MCZ ACZ IAZ OAZ
N N N CHA 0 0 0 0 0
HC ICC OCC
CI 00000000 00000000
tout ça représente un seul enregistrement.sous forme de
Nom du champ
Valeur
merci de vore aide
RE: differentes manieres de lecture dans un fichier
* differentes manieres de lire dans un fichier
Il existe aussi 3 methodes:
fgetc: lit un caractere
fgets: lit une chaine
fscanf: lit une chaine formatée.
$ fgetc
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| int main(int argc, char *argv[])
{
FILE* fichier = NULL;
int caractereActuel = 0;
fichier = fopen("test.txt", "r");
if (fichier != NULL)
{
// Boucle de lecture des caractères un à un
do
{
caractereActuel = fgetc(fichier); // On lit le caractère
printf("%c", caractereActuel); // On l'affiche
} while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
fclose(fichier);
}
return 0;
} |
$ fgets
Pour lire une ligne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #define TAILLE_MAX 1000 // Tableau de taille 1000
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
char chaine[TAILLE_MAX] = ""; // Chaîne vide de taille TAILLE_MAX
fichier = fopen("test.txt", "r");
if (fichier != NULL)
{
fgets(chaine, TAILLE_MAX, fichier); // On lit maximum TAILLE_MAX caractères du fichier, on stocke le tout dans "chaine"
printf("%s", chaine); // On affiche la chaîne
fclose(fichier);
}
return 0;
} |
pour lire tout le programme:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #define TAILLE_MAX 1000
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
char chaine[TAILLE_MAX] = "";
fichier = fopen("test.txt", "r");
if (fichier != NULL)
{
while (fgets(chaine, TAILLE_MAX, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
{
printf("%s", chaine); // On affiche la chaîne qu'on vient de lire
}
fclose(fichier);
}
return 0;
} |