bonjour,
comment fait-on pour remplir un tableau de n caracteres en tapant les caracteres au clavier?
je sais qu'il faut utiliser getchar
MERCICode:
1
2
3
4 for (k=0;k<n;k++) { Drapeau[k]=getchar......
Version imprimable
bonjour,
comment fait-on pour remplir un tableau de n caracteres en tapant les caracteres au clavier?
je sais qu'il faut utiliser getchar
MERCICode:
1
2
3
4 for (k=0;k<n;k++) { Drapeau[k]=getchar......
tout bêtement ca je crois :
Code:
1
2
3 for (int i=0;i<N; i++) Drapeau[i] = getchar();
Salut
Peut-être un truc de ce genre :
Rappel getchar renvoie un int qui permet de pister le EOF (Ctrl Z sous DOS de XP) qui n'est lu (toujours sous DOS de XP) qu'après avoir tapé Enter. C'est peut-être plus simple sous Linux/Unix !Code:
1
2
3
4
5
6
7
8
9 int k; char tab[256]; int c; k = 0; while((c = getchar()) != EOF) tab[k++] = (char) c; tab[k] = 0;
getchar(), ça ne fait pas ce que tu crois...Citation:
Envoyé par hiko-seijuro
http://emmanuel-delahaye.developpez.com/notes.htm#fgetc
Nota : getchar() c'est fgetc(stdin)
hihihi j'ai pas l'air d'un con la lol :D
j'ai pas trop compris ton site!
sinan avec un scan je propose ca
car pour une valeur à entrer , le scanf("%d",&k) met bien la valeur entrée au clavier dans k!Code:
1
2
3
4
5
6 for (k=0;k<n;k++) { scanf("%d",&k); Drapeau[k]=k; }
mai j'entre une valeur et après il s'arrete
Ben forcement (ou pas) tu utilises la meme variable pour ton for et la variable a saisirCitation:
Envoyé par molesqualeux
Code:
1
2
3
4
5
6 for (k=0;k<n;k++) { scanf("%d",&z); Drapeau[k]=z; }
bah je vois pas trop la différence, pour moi c'est la mme chose,
le probleme est de toute facon toujours présent , j'entre un charactere comme j'ai défini, et aprés stop il finit sa boucle.
J'ai un tableau de caractere à une dimension et je veux le remplir par le clavier
comment vous ferez?
merci
Ben comme j'ai montrer.Citation:
Envoyé par molesqualeux
A la place de scanf("%d",&k) il faut mettre
scanf"%d",&z); avec int z;
La raison est que :
Prenons n = 5
Tu rentre dans la boulce 0 < 5Code:
1
2 for (int i=0;i<n; i++) scanf("%d",&k);
Tu saisie un en tier par exemple 10 donc maintenant k = 10
Du coup tu sors de la boucle car 10 n'est pas < a 5
ne lit pas un caractère mais un entier. Conséquence, il ya conversion des caractères (numériques) lus et la valeur est placée dans un int z . Si z n'est pas un int mais un char, ca va planter à l'exécution. Pour un char, c'est %cCode:scanf("%d",&z);
Ok, c'est peut être mal expliqué. Quoi, par exemple?Citation:
Envoyé par molesqualeux
Autant pour moi.Citation:
Envoyé par diogene
J'ai juste corriger son bout de code, je n'avais pas vu qu'il voulai saisir des caractères.
Ben par exemple: c quoi un flux? C'est quoi stdin*? J'avoue avoir parcouru la page et moi aussi j'ai trouvé ça nébuleux j'ai pas tout compris non plus loin de la ceci dit c'est peut être simplement que je n'ai pas le niveau...Citation:
Envoyé par Emmanuel Delahaye
*je sais cela peut paraitre évident mais pour un débutant a qui on dit:" Les caractères saisis sont stockés dans le flux stdin" je peux comprendre qu'il se pose des questions comme : mais alors ils sont ou mes caractères? :lol:
http://emmanuel-delahaye.developpez.com/init_c.htm#fluxCitation:
Envoyé par Gnux
Citation:
Envoyé par Emmanuel Delahaye
On peut donc en déduire si c'est le cas pour tous les mots pouvant causer souci qu'il n'a lu que la page donnée sans chercher plus loin (tiens d'ailleurs y'a un moteur de recherche intégré à ton site ?)
Non. Il y a un article d'initiation avec des hyperliens, sinon, les autres articles sont pour les lecteurs connaissant les bases. C'est indiqué en introduction.Citation:
Envoyé par Gnux
Dommage :cry:Citation:
Envoyé par Emmanuel Delahaye
Sinon je n'ai rien vu sur les fd (j'ai peut être mal cherché). Chez moi on les trouve avec les fluxs justement:
Leur manipulation est parfois délicate c'est pour ça que j'aurais pas craché sur un des tutos bien lumineux (parce que les mans c'est rude qd même :lol: )Code:fd, stdin, stdout, stderr -- file descriptor files