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 :

getchar


Sujet :

C

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Points : 139
    Points
    139
    Par défaut getchar
    bonjour,
    comment fait-on pour remplir un tableau de n caracteres en tapant les caracteres au clavier?
    je sais qu'il faut utiliser getchar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (k=0;k<n;k++)
    {
       Drapeau[k]=getchar......
    MERCI

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    tout bêtement ca je crois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i=0;i<N; i++)
       Drapeau[i] = getchar();
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut
    Peut-être un truc de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    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 !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par hiko-seijuro
    tout bêtement ca je crois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i=0;i<N; i++)
       Drapeau[i] = getchar();
    getchar(), ça ne fait pas ce que tu crois...

    http://emmanuel-delahaye.developpez.com/notes.htm#fgetc

    Nota : getchar() c'est fgetc(stdin)
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    hihihi j'ai pas l'air d'un con la lol
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Points : 139
    Points
    139
    Par défaut
    j'ai pas trop compris ton site!
    sinan avec un scan je propose ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (k=0;k<n;k++)
    {
        scanf("%d",&k);
        Drapeau[k]=k;
    }
    car pour une valeur à entrer , le scanf("%d",&k) met bien la valeur entrée au clavier dans k!


    mai j'entre une valeur et après il s'arrete

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par molesqualeux
    j'ai pas trop compris ton site!
    sinan avec un scan je propose ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (k=0;k<n;k++)
    {
        scanf("%d",&k);
        Drapeau[k]=k;
    }
    car pour une valeur à entrer , le scanf("%d",&k) met bien la valeur entrée au clavier dans 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 saisir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (k=0;k<n;k++)
    {
        scanf("%d",&z);
        Drapeau[k]=z;
    }
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Points : 139
    Points
    139
    Par défaut
    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

  9. #9
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par molesqualeux
    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.
    A la place de scanf("%d",&k) il faut mettre
    scanf"%d",&z); avec int z;

    La raison est que :
    Prenons n = 5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i=0;i<n; i++) 
    scanf("%d",&k);
    Tu rentre dans la boulce 0 < 5
    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
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  10. #10
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    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 %c
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par molesqualeux
    j'ai pas trop compris ton site!
    Ok, c'est peut être mal expliqué. Quoi, par exemple?
    Pas de Wi-Fi à la maison : CPL

  12. #12
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par diogene
    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 %c
    Autant pour moi.
    J'ai juste corriger son bout de code, je n'avais pas vu qu'il voulai saisir des caractères.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  13. #13
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par molesqualeux
    j'ai pas trop compris ton site!
    Ok, c'est peut être mal expliqué. Quoi, par exemple?
    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...

    *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?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gnux
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par molesqualeux
    j'ai pas trop compris ton site!
    Ok, c'est peut être mal expliqué. Quoi, par exemple?
    Ben par exemple: c quoi un flux? C'est quoi stdin*?
    http://emmanuel-delahaye.developpez.com/init_c.htm#flux
    Pas de Wi-Fi à la maison : CPL

  15. #15
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Gnux
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par molesqualeux
    j'ai pas trop compris ton site!
    Ok, c'est peut être mal expliqué. Quoi, par exemple?
    Ben par exemple: c quoi un flux? C'est quoi stdin*?
    http://emmanuel-delahaye.developpez.com/init_c.htm#flux

    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 ?)

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gnux
    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.
    Pas de Wi-Fi à la maison : CPL

  17. #17
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Gnux
    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.
    Dommage
    Sinon je n'ai rien vu sur les fd (j'ai peut être mal cherché). Chez moi on les trouve avec les fluxs justement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fd, stdin, stdout, stderr -- file descriptor files
    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 )

Discussions similaires

  1. getchar.
    Par skelletons dans le forum C
    Réponses: 2
    Dernier message: 01/04/2006, 18h37
  2. [debutant]getchar()
    Par Treuze dans le forum C
    Réponses: 11
    Dernier message: 05/01/2006, 18h16
  3. Probleme de getchar
    Par nonaM1982 dans le forum C
    Réponses: 2
    Dernier message: 13/12/2005, 22h27
  4. getchar()
    Par bashou dans le forum C
    Réponses: 11
    Dernier message: 16/09/2005, 18h49
  5. Réponses: 8
    Dernier message: 03/07/2004, 12h53

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