Importer des nombres depuis un fichier en C

Résolu/Fermé
ebom Messages postés 4 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 1 novembre 2009 - 31 oct. 2009 à 16:42
ebom Messages postés 4 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 1 novembre 2009 - 1 nov. 2009 à 15:50
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
31 oct. 2009 à 18:28
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 samedi 31 octobre 2009 Statut Membre Dernière intervention 1 novembre 2009
1 nov. 2009 à 15:50
Merci beaucoup, j'ai utilisé fscanf et ça marche parfaitement!
0