begin process at 2012 05 29 11:55:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

Formatage fscanf


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Formatage fscanf

lundi 22 janvier 2007 à 14:19:07 | Formatage fscanf

xsybus

bonjour, j'ai un probleme avec fscanf, il en prend pas en compte le formatage que je lui impose.

j'ai un fichier repertoire.txt dans lequel j'ai:


toto,titi,0123456789;


je veux ensuite récuperer mes donnée avec:


    fscanf(Pfichier,"%s,%s,%s;",contact[1].nom,contact[1].prenom,contact[1].numero);   
   
//affichage des données
    printf("\nNom: %s ",contact[1].nom);
    printf("\nPrenom: %s",contact[1].prenom);
    printf("\nNumero de telephone: %s",contact[1].numero);



maleureusement, il ne prend pas en compte mon formattage, et me stock tout dans contact[1].nom...

Y a t'il une erreure quelque part?

merci de m'aider!





xsybus
lundi 22 janvier 2007 à 14:48:21 | Re : Formatage fscanf

yann_lo_san

Réponse acceptée !

Salut,
Je ne vois pas ce qui cloche dans fscanf() mais tu peux utiliser une solution plus longue si tu ne trouves pas la solution pour scanf :

FILE* file;
char bufLigne[256];
const char sep[] = ",\r\n";

// ouvre fichier

while( fgets(bufLigne, 256, file) != NULL )
{
    int numChamp = 0;
    char *token;
    token = strtok(bufLigne, sep);
 
    while( token != NULL )
    {
        switch( numChamp )
        {
        case 0:
            strcpy(contact[1].nom, token); 
            break;  
        case 1:
            strcpy(contact[1].prenom, token); 
            break;
        case 2:
            strcpy(contact[1].numero, token);
            break;
        } 
        token = strtok(NULL, sep);
        if( numChamp++ == 3 ) break;
    }

    if( numChamp != 3 ) //erreur
}

// ferme fichier

lundi 22 janvier 2007 à 14:54:19 | Re : Formatage fscanf

yann_lo_san

Apparemment fscanf marcherait avec des espaces ex :

 fscanf(Pfichier,"%s, %s, %s;", ...)

pour une ligne dans le fichier :

toto, titi, 0123456789;

  

lundi 22 janvier 2007 à 14:58:10 | Re : Formatage fscanf

xsybus

merci, je suis en train de tester ça, mais cela ne veux pas fonctionner, il plante direct à l'execution... c'est bien du C et non pas du C++?

voila mon prog en entier, avec ta modif:


#include <stdio.h>
#include <stdlib.h>

int main()
{
   
    char nom_rep[50]="repertoire.txt";
   
//definition de la structure
    typedef struct repertoire repertoire;
    struct repertoire
    {
        char nom[30];
        char prenom[30];
        char numero[10];
    };
    repertoire contact[1000];
   
//definition du pointeur   
    FILE *Pfichier;
    Pfichier=fopen(nom_rep,"rb");
   
//recupération des données dans le fichier 
 
FILE* file;
char bufLigne[256];
const char sep[] = ",\r\n";

// ouvre fichier

while( fgets(bufLigne, 256, file) != NULL )
{
    int numChamp = 0;
    char *token;
    token = strtok(bufLigne, sep);
 
    while( token != NULL )
    {
        switch( numChamp )
        {
        case 0:
            strcpy(contact[1].nom, token);
            break; 
        case 1:
            strcpy(contact[1].prenom, token);
            break;
        case 2:
            strcpy(contact[1].numero, token);
            break;
        }
        token = strtok(NULL, sep);
        if( numChamp++ == 3 ) break;
    }
   
}

// ferme fichier
   
//affichage des données
    printf("\nNom: %s ",contact[1].nom);
    printf("\nPrenom: %s",contact[1].prenom);
    printf("\nNumero de telephone: %s",contact[1].numero);
    system("pause");
}


xsybus
lundi 22 janvier 2007 à 15:03:05 | Re : Formatage fscanf

yann_lo_san

Essayes plutot un read texte :
fopen(nom_rep,"rt");

lundi 22 janvier 2007 à 15:05:13 | Re : Formatage fscanf

xsybus

pour ta deuxieme proposition, j'ai testé avec 

fscanf(Pfichier,"%s, %s, %s;",contact[1].nom,contact[1].prenom,contact[1].numero);

avec ça dans mon fichier repertoire.txt:

toto, titi, 0123456789;

et il m'enregistre " toto, "dans contact[1].nom et rien dans le reste...

xsybus
lundi 22 janvier 2007 à 15:05:39 | Re : Formatage fscanf

yann_lo_san

Réponse acceptée !

Tu utilises pFichier et file en même temps !!

lundi 22 janvier 2007 à 15:07:36 | Re : Formatage fscanf

xsybus


Essayes plutot un read texte :
fopen(nom_rep,"rt");
    cela ne change rien... merci de m'aider...


xsybus
lundi 22 janvier 2007 à 15:08:43 | Re : Formatage fscanf

xsybus


Tu utilises pFichier et file en même temps !!

raaa putain mais quel con!!

merci beaucoup! ça marche!!!!


xsybus
lundi 22 janvier 2007 à 15:10:15 | Re : Formatage fscanf

yann_lo_san

avec strtok ou fscanf ?


1 2 3

Cette discussion est classée dans : printf, formatage, prend, contact, fscanf


Répondre à ce message

Sujets en rapport avec ce message

demande d'aide pour un carnt d'adresses avec liste chaînée [ par titoune85 ] bonsoir à tous!je vous demande un peu de temps et beaucoup d'aide pour ce pg qui consiste a creer un carnet d'adresse classé par ordre alphabetique. J probleme de formatage [ par psycho ] bonjour!voila, je suis en train de programmer un logiciel en C (pas C++), et j utilise des entiers de type long.j utilise printf de stdio.hprobleme j utilisation des fichiers dans une fonction [ par chroctar ] Bonjour, Pourriez vous m'aider ? Je dois faire un projet qui consiste à créer un agenda numerique.Voila mon probleme :J'ai créé une fonction dans laqu trier un tableau de stucture en c [ par peli20 ] [^^happy13]salut, j ai un petit probleme en c ,j espere que vous m aidiez.. bon, j essaie d elaborer un programme faisant la gestion des contact, le r aide pour ajouter 2 nombre au tableau [ par Rido159 ] [size=100][b]Bonjour je suis débutant en C, j ai besoin de votre aide svp [^^mad5] j ai déclarer un tableau , j ai fais l'initialisation mais je suis besoin d'aide sur communication [ par keast ] salut tout le monde, Voila je suis vraiment nul en info et j'ai un problème en ce moment sur un projet. Je dois piloté un appareil qui celui-ci fonct aide pour realiser une repertoire telephonique en langage c [ par djamel000 ] Bonjour , je souhaiterai réaliser un répertoire téléphonique à accès sécurisé(cryptage des données par mot de passe)et recherche rapide de coordonnées printf char* [ par Flow8002 ] Bonjour , J'ai un petit soucis je n'arrive pas a imprimer un char *. je m'explique , j'ai un char *test qui contiens deux valeurs. test[0]=9; test[ Calculatrice [ par sarazin66 ] Voila ma calculatrice , je cherche pleins de critique pour l'améliorer =D [^^langue3] voici ma source: [code=cpp][/code]#include #include #include Appel d'un fichier d'entete [ par batoule80 ] Bonjour, je programme en c sous linux , il s'agit de résoudre une équation du second degrés. en premier lieu on insite l'utilisateur à saisir les coé


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales