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 :

remplir un fichier texte


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Par défaut remplir un fichier texte
    bonjour à vous,et merci pour vos efforts,
    j'ai un fichier.txt vide,je veux écrire un programme pour remplir mon fichier avec boucle de 1 à 1000 et avoir à la fin 1000 lignes de:
    ('i1',i2,'i3',i4,i5,66)


    avec i1,i2,i3,i4,i5 des variables entieres aléatoires <10


    ex:

    ('3',7,'8',3,0,66)
    ('1',6,'3',8,3,66)
    ('5',8,'8',8,1,66)
    ('4',2,'1',3,5,66)
    ('7',5,'1',2,9,66)
    .............
    .............
    .............
    merci

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    et donc? quel est ton probleme?

  3. #3
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par naazih
    bonjour à vous,et merci pour vos efforts,
    j'ai un fichier.txt vide,je veux écrire un programme pour remplir mon fichier avec boucle de 1 à 1000 et avoir à la fin 1000 lignes de:
    ('i1',i2,'i3',i4,i5,66)


    avec i1,i2,i3,i4,i5 des variables entieres aléatoires <10


    ex:

    ('3',7,'8',3,0,66)
    ('1',6,'3',8,3,66)
    ('5',8,'8',8,1,66)
    ('4',2,'1',3,5,66)
    ('7',5,'1',2,9,66)
    .............
    .............
    .............
    merci
    Et tu veux quoi? le programme en entier, les fonction a utiliser?
    Pour aleatoire, rand()...
    pour les fichier moi j'utilise fgetc(),et fputc()...

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Par défaut
    je débute en C,et je ne sais pas écrire mon programme

  5. #5
    Membre actif Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Et ou se situe ton problème plus spécialement ?

    Ouvrir un fichier ?

    Generer des nombres aléatoires ?

    Faire une boucle ?

    Faire le programme ... ?

  6. #6
    Membre actif Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Citation Envoyé par naazih
    je débute en C,et je ne sais pas écrire mon programme
    Ben il va falloir suivre un tutoriel en C et tout reprendre depuis le début :-)

  7. #7
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par naazih
    je débute en C,et je ne sais pas écrire mon programme
    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
     
    int Randum(int i)
    {
    int c;
    c=(rand()%10);
    }
     
     
     
    int main(){
    FILE *P_FICHIER;      /* pointeur sur FILE */
      char NOM_FICHIER[]="C:\\mon_fichier";
    //declarer rand mais j'ai un trou...
    int c,i;
    do
        {     
         P_FICHIER = fopen(NOM_FICHIER, "w"); 
         if (!P_FICHIER) 
            printf("\nERREUR: Impossible d'ouvrir le fichier.\n");
            Sleep(3000);
        } while (!P_FICHIER);
         for (i=0;i<1000;i++)
         {   c=Randum(i);
             fputc( c , P_FICHIER );     }
         fclose(P_FICHIER);
    return 0;
    }

  8. #8
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Citation Envoyé par miron
    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
     
    int main(){
    FILE *P_FICHIER;      /* pointeur sur FILE */
      char NOM_FICHIER[]="C:\\mon_fichier";
     
     
    int c,i;
    do
        {     
         P_FICHIER = fopen(NOM_FICHIER, "w"); 
         if (!P_FICHIER) 
            printf("\nERREUR: Impossible d'ouvrir le fichier.\n");
            Sleep(3000);
        } while (!P_FICHIER);
         for (i=0;i<1000;i++)
         {   c=Randum(i);
             fputc( c , P_FICHIER );     }
         fclose(P_FICHIER);
    }

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Par défaut
    mais là,d'aprés ce que j'ai bien compris,il va mettre une valeur aléatoire mille fois dans le fichier.mais pour afficher la valeur suivi d'une parenthèse et les virgule sur la meme ligne,est ce que je doit faire
    fputc( c , P_FICHIER );
    fputc( "," , P_FICHIER );
    fputc( ")" , P_FICHIER ); ??

  10. #10
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par naazih
    je débute en C,et je ne sais pas écrire mon programme
    Alors il faut commencer par apprendre le C. Il y a des livres, des tutos... des références sur ce site...

    On ne fera rien à ta place. C'est à toi de te former, d'écrire le code et de le poster avec une question précise si tu es bloqué.

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par naazih
    mais là,d'aprés ce que j'ai bien compris,il va mettre une valeur aléatoire mille fois dans le fichier.mais pour afficher la valeur suivi d'une parenthèse et les virgule sur la meme ligne,est ce que je doit faire
    fputc( c , P_FICHIER );
    fputc( "," , P_FICHIER );
    fputc( ")" , P_FICHIER ); ??
    STOP. On va procéder par étape.

    Commence par le début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ouvrir le fichier
    tester l'ouverture
    SI le fichier est ouvert correctement
       fermer le fichier
    FIN SI
    Code ça et montre le.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Par défaut
    j'ai su faire inserer des caracteres dans le fichier,mais pour inserer des entiers,je me retrouve dans le fichier avec des caractere spéciaux au lieu d'entiers!!!!!!!
    autre question:comment faire pour sauter une ligne dans le fichier

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fputc( '\n' , P_FICHIER );
    pour faire un saut de ligne.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Par défaut
    Je crois savoir pourquoi des caracteres bizarre apparaisse. C'est parce que tes entrés sont de type char, donc dans le fichier tu trouveras les lettres dont le code ASCII correspond au nombre donné. Je te conseille donc d'utiliser au lieu de fputc( c , P_FICHIER );
    fprintf(P_FICHIER,"%d",c);
    Et pour avoir une representation sous la forme (x,x,x,x,x,66) tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (i=0;i<200;i++)       /*
    {   c1=Randum(i);
         c2=Randum(i);
         c3=Randum(i);
         c4=Randum(i);
         c5=Randum(i);
             fprintf(P_FICHIER, "(%d,%d,%d,%d,%d,66)",c1,c2,c3,c4,c5 );     }
    J'espere que c'est ce que tu veux.

  15. #15
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par H-raf
    Je crois savoir pourquoi des caracteres bizarre apparaisse. C'est parce que tes entrés sont de type char, donc dans le fichier tu trouveras les lettres dont le code ASCII correspond au nombre donné. Je te conseille donc d'utiliser au lieu de fputc( c , P_FICHIER );
    fprintf(P_FICHIER,"%d",c);
    Et pour avoir une representation sous la forme (x,x,x,x,x,66) tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (i=0;i<200;i++)       /*
    {   c1=Randum(i);
         c2=Randum(i);
         c3=Randum(i);
         c4=Randum(i);
         c5=Randum(i);
             fprintf(P_FICHIER, "(%d,%d,%d,%d,%d,66)",c1,c2,c3,c4,c5 );     }
    J'espere que c'est ce que tu veux.
    Mieux vaux fprintf ou fputc?
    Quelle est la differrence mis a par sa != d'ecriture dans le fichier

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par miron
    Mieux vaux fprintf ou fputc?
    Quelle est la differrence mis a par sa != d'ecriture dans le fichier
    Bah, il suffit de lire la doc non ? Il faut que je te rappelle pour la 3000ème fois où la trouver ?

    http://man.developpez.com/

    • fputc() est une fonction de bas niveau qui met un caractère dans le fichier sans interprétation (sauf fin de ligne en mode texte).
    • fprintf() fait ça (avec "%c"), mais fait aussi bien d'autres choses, comme la conversion de valeurs entières ou décimales en texte, le formatage en colonnes de tailles fixe avec ou sans 0 etc.

    Ca ne ce situe pas du tout au même niveau...

    Tu choisis l'outil adapté à tes besoins. C'est tout. L'important est de savoir définir ses besoins.

  17. #17
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Bah, il suffit de lire la doc non ? Il faut que je te rappelle pour la 3000ème fois où la trouver ?

    http://man.developpez.com/
    • fputc() est une fonction de bas niveau qui met un caractère dans le fichier sans interprétation (sauf fin de ligne en mode texte).
    • fprintf() fait ça (avec "%c"), mais fait aussi bien d'autres choses, comme la conversion de valeurs entières ou décimales en texte, le formatage en colonnes de tailles fixe avec ou sans 0 etc.
    Ca ne ce situe pas du tout au même niveau...

    Tu choisis l'outil adapté à tes besoins. C'est tout. L'important est de savoir définir ses besoins.
    Donc pour mettre des nombres dans un fichier c mieu fprintf?

  18. #18
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par miron
    Donc pour mettre des nombres dans un fichier c mieu fprintf?
    En principe pour ce que tu veux faire, je pense oui

    Jc

  19. #19
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par fearyourself
    En principe pour ce que tu veux faire, je pense oui

    Jc
    Le probleme viendrait pour les recupérer non?

  20. #20
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par miron
    Donc pour mettre des nombres dans un fichier c mieu fprintf?
    Si on veut utiliser un format texte, il n'y a pas trop d'alternative (à part une complexification inutile).

    Il n'y a pas de mieux ou de moins bien. Tu définis un besoin, tu utilises l'outil qui va bien, c'est tout.

    Ce n'est pas l'outil qui fait la spec. Je rappelle que pour développer n'importe quel projet, c'est au minimum
    1. Spécification (Quoi ?)
    2. Conception (Comment ?)
    3. Réalisation (outils, langage, tests unitaires...)
    4. Integration
    5. Validation
    Si tu fais les choses dans le désordre, t'as pas fini...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment remplir un xml à partir d'un fichier texte
    Par edophie dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2006, 23h05
  2. Réponses: 2
    Dernier message: 11/05/2006, 22h21
  3. Réponses: 3
    Dernier message: 29/03/2006, 14h23
  4. comment remplir un jTable à partir d'un fichier texte
    Par @yoyo dans le forum Composants
    Réponses: 1
    Dernier message: 16/03/2006, 11h54
  5. Réponses: 9
    Dernier message: 16/12/2005, 15h46

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