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
![]()
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
![]()
Quel fichier ? Il existe déjà, tu dois le créer, le remplacer ?chaque ligne du fichier
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/
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
En C, les caracteres fonctionnes exactement comme des entiers. Ils ont simplement une taille plus petite (1 octet normalement).
Par l'exemple:
Provoque l'affichage "N 78".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char w = 78; printf("%c %d",w,w)
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; }
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; }
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.
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.) ?
Partager