IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Ne récupérer que les entiers dans un fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut Ne récupérer que les entiers dans un fichier
    Bonjour,

    Je programme en C, j'ai un fichier qui contient ceci :

    hello frfr 5 3
    Je voudrais ne récupérer que le 5 et le 3 dans des variables.

    Merci beaucoup.

  2. #2
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Par défaut
    Si tu as juste des cas semblables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int i=0,fd,result;
    char tmp;
    if(fd=open("file.txt"))
    {
    	while(read(fd,&tmp,1)
    		if((tmp>='0') && (tmp<='9'))
    			result=tmp-'0';
    }
    C'est une piste. Tu peux ensuite l'améliorer pour stocker plusieurs valeurs.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut
    c est qoi tmp??
    Citation Envoyé par dré kam Voir le message
    Si tu as juste des cas semblables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int i=0,fd,result;
    char tmp;
    if(fd=open("file.txt"))
    {
    	while(read(fd,&tmp,1)
    		if((tmp>='0') && (tmp<='9'))
    			result=tmp-'0';
    }
    C'est une piste. Tu peux ensuite l'améliorer pour stocker plusieurs valeurs.

  4. #4
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Par défaut
    C'est la variable de type char que j'ai déclarée en début de code.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut
    Citation Envoyé par dré kam Voir le message
    C'est la variable de type char que j'ai déclarée en début de code.
    j arrive pas a affiché le valeur stocké dans le fichier quand je lance le programme il boucle en fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    include<stdio.h>
    #include<stdlib.h>
    #define TAILLE_MAX 100
    int main(int argc, char *argv[])
    {
      int tab[2]={0},i=0,result,fd;
    FILE* fichier=NULL;
     char tmp;
    fichier =fopen("probleme.txt","r");
    if(fichier!=NULL)
      {
     
        while (read(fd,&tmp,1)) 
          {                                                                    
    	if((tmp>='0') && (tmp<='9'))
    			result=tmp-'0';                                           
          }
     
            fclose(fichier);
      }
     printf("%d\n",result);
        r

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Par défaut
    C'est normal... Tu as déclaré un int fd non initialisé et non modifié, tu le compares ensuite, donc ça fait une boucle infinie.
    Il faudrait plutot utiliser open (2) avec la flag que tu veux (voir man) car il renvoie un file descriptor, que tu stockeras dans fd.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Citation Envoyé par simplyc Voir le message
    bonjour,

    je programme en C, j ai un fichier qui contient ca
    hello frfr 5 3
    je voudrais récupérer que le 5 et le 3 dans des variables
    Merci BEAUCOUP
    Ta question, posée comme cela, est trop vague et trop ambigüe.

    En effet, tu ne précises pas si cette ligne contenue dans le fichier est un exemple, c'est-à-dire qu'elle peut être modifiée (et que le programme doive donc en tenir compte). Car si c'est le cas, il nous faut connaitre le format de ce fichier, et par conséquent savoir sur quels critères s'appuyer pour récupérer tel ou tel "token".

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Ta question, posée comme cela, est trop vague et trop ambigüe.

    En effet, tu ne précises pas si cette ligne contenue dans le fichier est un exemple, c'est-à-dire qu'elle peut être modifiée (et que le programme doive donc en tenir compte). Car si c'est le cas, il nous faut connaitre le format de ce fichier, et par conséquent savoir sur quels critères s'appuyer pour récupérer tel ou tel "token".

    en fait le fichiers est tous le temps sur la meme forme ,il ya que les valeurs qui c est changenst

    merci

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut
    ici j ai un essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    include<stdio.h>
    #include<stdlib.h>
    int main(int argc, char *argv[])
    {
        FILE* fichier = NULL;
        char car="";
        fichier = fopen("probleme.txt","r");
     
        if (fichier != NULL)
        {
          car=fgetc(fichier);
          while(car!=EOF)
    	{
    	  if(car>"0" || car<"9")
     
    	       printf("%c", car); // On affiche le caractère stocké dans caractereActuel
      	    car = fgetc(fichier); // On lit le caractère suivant
    	}
     
            fclose(fichier); // On ferme le fichier qui a été ouvert        
        }
     
        return 0;
    }

    ici il ma affiche tous le"s contenue d un fichier

  10. #10
    Membre émérite
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Par défaut
    Déja il faut utilisé >= ou <= sinon tu ne prendras jamais en compte le 0 et le 9. ensuite il ne faut pas utiliser des double quote, mais des simples.
    Donc ça doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( car<='0' || car<='9' )
    fiki

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 89
    Par défaut
    Citation Envoyé par KevinouLoliLol Voir le message
    Déja il faut utilisé >= ou <= sinon tu ne prendras jamais en compte le 0 et le 9. ensuite il ne faut pas utiliser des double quote, mais des simples.
    Donc ça doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( car<='0' || car<='9' )
    fiki
    oui c est vrai ....mais j ai trouvé une autre idéé,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include<stdio.h>
    #include<stdlib.h>
    #include<ctype.h>
    #define TAILLE_LIG 100
    int main(int argc, char *argv[])
    {
      int k,i;
      char chaine[TAILLE_LIG];
        FILE* fichier = NULL;
        char car="";
        fichier = fopen("probleme.txt","r");
     
        if (fichier != NULL)
        {
    while((fgets(chaine, TAILLE_LIG, fichier)!=NULL)&&i<TAILLE_LIG) // On lit maximum TAILLE_LIG caractères du fichier, on stocke le tout dans "chaine"
      {
        k=0;
      while(k<TAILLE_LIG &&chaine[k]==' ')
          {
    	k++;
     
          }
      if(chaine[k]>'a'&& chaine[k]<'Z')
        {	    
          k++;
        }
    else
    	    printf("val %c\n ", car); // On affiche le caractère stocké dans caractereActuel
      	    car = fgetc(fichier); // On lit le caractère suivant
    	}
     
            fclose(fichier); // On ferme le fichier qui a été ouvert        
        }
     
        return 0;
    }


    ca marche pas encore !!!!!!!!!!!!!!!!!!!!

Discussions similaires

  1. Logiciel pour récupérer que les mails dans une page web
    Par mouss4rs dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 24/07/2010, 14h41
  2. Réponses: 2
    Dernier message: 22/02/2007, 19h28
  3. Réponses: 12
    Dernier message: 21/02/2007, 09h44
  4. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  5. récupérer un entier dans le fichier ".rc"
    Par luffy0013 dans le forum MFC
    Réponses: 2
    Dernier message: 15/02/2005, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo