Importer des nombres depuis un fichier en C

Résolu
ebom Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
ebom Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je souhaite extraire des nombres d'un fichier.
Ce fichier contient un nombre par ligne.

Je propose donc ce code:

FILE *pFic;
pFic=fopen("Fichier","r"); //j'ouvre le fichier en lecture

int Nb1,Nb2;

Nb1=getc(pFic); //j'importe les 2 premiers chiffres
Nb2=getc(pFic);
printf("Nb1: %d , Nb2: %d",Nb1,Nb2); //j'affiche ces deux nombres


Mais cela renvoie : Nb1:51 , Nb2: 10
Alors que les deux premiers nombres du fichier sont 3 et 2


Quelqu'un peut-il m'aider?
Merci
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tu lis les caractères un par un, mais tu as oublié le saute de ligne qui est aussi un caractère.
51 c'est le code ASCII pour le caractère '3'
10 c'est le code ASCII pour le saute de ligne (LF - line feed)

#include<stdio.h>

int main()
{
        FILE *pFic;
        pFic=fopen("Fichier","r"); //j'ouvre le fichier en lecture

        int Nb1,Nb2;

        Nb1=getc(pFic); //j'importe les 2 premiers chiffres
        getc(pFic);
        Nb2=getc(pFic);
        printf("Nb1: %c , Nb2: %c",Nb1,Nb2); //j'affiche ces deux nombres
        return 0;
}


Tu peux utiliser aussi fscanf par exemple

#include<stdio.h>

int main()
{
        FILE *pFic;
        pFic=fopen("Fichier","r"); //j'ouvre le fichier en lecture

        int Nb1,Nb2;

        fscanf(pFic,"%d%d",&Nb1,&Nb2); //j'importe les 2 premiers chiffres
        printf("Nb1: %d , Nb2: %d\n",Nb1,Nb2); //j'affiche ces deux nombres
        return 0;
}


0
ebom Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, j'ai utilisé fscanf et ça marche parfaitement!
0