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 :

comment generer une chaine caractere sur chaque d'un fichier


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 32
    Points
    32
    Par défaut comment generer une chaine caractere sur chaque d'un fichier
    Bonsoir a tous,

    je souhaite generer une chaine de 8 caractère sur chaque ligne du fichier de facon aleatoire c'est-à-dire generer par le systeme.
    comment je peux proceder.
    merci pour votre aide

  2. #2
    Membre chevronné
    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
    Points : 1 750
    Points
    1 750
    Par défaut
    En utilisant la fonction rand par exemple.

  3. #3
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    chaque ligne du fichier
    Quel fichier ? Il existe déjà, tu dois le créer, le remplacer ?

    Pour générer une chaine de caractères aléatoire de taille 8, tu peux simplement générer 8 fois un caractère aléatoire.

    Comment ? Une possibilité est de générer un nombre entre 0 et 25 (dans le cas ou tu veux que des minuscules ou que des majuscules), puis tu ajoutes 'a' ou 'A', à ce nombre. Ca te donne un caractère aléatoire.

    Si tu connais pas les fonctions pour générer un nombre aléatoire, va voir là:
    http://nicolasj.developpez.com/articles/libc/hasard/

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 32
    Points
    32
    Par défaut classé les chaines presents dans un fichier
    bonsoir a tous,
    le fichier n'existe pas , il faut le créer et ensuite écrire la dedans.
    ensuite comment récupérer la valeur en caractère d'un entier.
    par exemple

    si je déclare:
    int w=78
    kan je regarde dans la table c'est N
    comment faire cela par code
    merci d'avance

  5. #5
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    En C, les caracteres fonctionnes exactement comme des entiers. Ils ont simplement une taille plus petite (1 octet normalement).
    Par l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char w = 78;
    printf("%c %d",w,w)
    Provoque l'affichage "N 78".

    Ton programme pourrait ressembler à ca
    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
     
    #include <stdio.h>
    /*Eventuellement d'autres includes ici*/
     
    #define NB_LIGNE_FIC 21 /*Le nombre de ligne que tu veux ecrire dans ton fichier, que je choisi constant pour simplifier*/
     
    #define TAILLE_CHAINE 8 /*Constante pour la taille de ta chaine*/
     
    void genererChaineAleatoire(char *alea, int taille){
      /*Je te laisse trouver cette partie*/
      /*Oublie pas de mettre \0 au bout de la chaine*/
    }
     
    int main(void){
      char chaine[TAILLE_CHAINE+1] /*chaine que tu vas ecrire dans le fichier*/
      int i = 0;
      FILE *fic = fopen("monfichier.txt", "w");
      if (fic == NULL) /*Si erreur d'ouverture du fichier*/
        return 1;
      while (i < NB_LIGNE_FIC){
        genererChaineAleatoire(alea,TAILLE_CHAINE);
        fprintf(fic,"%s\n",alea);
        i++;
      }
      fclose(fic); 
      return 0;
    }

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 32
    Points
    32
    Par défaut mettre les caracteres dans un tableau
    bonsoir a tous,

    vous trouverez ci dessous mon code.
    je souhaite mettre les caractère generé dans un tableau
    et ecrit dans un fichier.
    merci d'avance

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main(){
     
    	  int entier,i;
    	  srand ( time(NULL) );
     
    for(i=1;i<10000;i++){
    	  entier =rand() % 127 + 33;
          printf("%c",entier);
    }
    return 0;
    }

  7. #7
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par mipou Voir le message
    vous trouverez ci dessous mon code.
    je souhaite mettre les caractère generé dans un tableau
    et ecrit dans un fichier.
    Pour le mettre dans un tableau, il suffit de définir le dit tableau et de copier le caractère dedans.

    Pour ecrire dans le fichier, Climoo a donne une solution.

    Citation Envoyé par mipou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    entier =rand() % 127 + 33;
    Ceci n'est pas correct:
    • D'une part tu fais une supposition sur le charset utilisé (ASCII ici) ce qui n'est pas portable.
    • Ensuite, même en supposant que l'on se restreigne à l'ASCII, tu souhaites probablement utiliser des caractères dans l'intervalle [33;127] or là tu tapes dans l'intervalle [33;159].
    • Enfin tu parles de mettre 8 caractères, est-ce réellement 8 caractères totalement quelconque ou seulement 8 caractères parmi un ensemble défini (minuscule, majuscule, alphabétique, alphanumérique, etc.) ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/07/2007, 17h19
  2. Réponses: 10
    Dernier message: 16/06/2006, 13h53
  3. comment chercher une chaine de caractere
    Par phpaide dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 12h12
  4. Réponses: 3
    Dernier message: 12/05/2006, 10h53
  5. Comment diffuser une chaine de télé/radio sur le net ?
    Par nemesix dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 24/02/2006, 08h46

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