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 :

Problème au lancement


Sujet :

C

  1. #1
    Membre éclairé Avatar de emprex
    Homme Profil pro
    auto-entrepreneur
    Inscrit en
    Octobre 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : auto-entrepreneur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2007
    Messages : 219
    Par défaut Problème au lancement
    Bonjour,
    Je me suis acheté le livre de Kernighan et Richie dans lequel je trouve le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
     main()
    {
        long nc ;
    	nc=0;
        while ( getchar() != EOF)
    		++nc;
    	printf("%ld",nc);
    }
    Je voulais m'en inspirer pour faire un code qui compte le nombre de 'L' dans un texte saisit par l'utilisateur. voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
     int main(void)
    {
        long c,nL ;
    	nL=0;
        while ((c=getchar()) != EOF)
    		if (c=='L')
    		++nL;
    	printf("%ld",nL);
    	return 0;
    }
    Dans les deux cas le programme damande le texte et va à la ligne mais n'affiche aucun résultat. Je peux juste taper du texte et ainsi de suite. Peut-on m'aider à trouver une solution.
    Merci.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Il faut que tu envoies EOF explicitement. La facon de faire depend du systeme (Ctrl-Z ou Ctrl-D).

  3. #3
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Sinon, pour que ça marche, il faut que tu t'arrêtes à "\n" :
    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>
     
    int main() {
        long c, nL;
     
        nL=0;
        while ( (c=getchar()) != '\n' && c != EOF ) {
            if ( c=='L' ) {
                nL++;
            }
        }
        printf("%ld\n",nL);
        return 0;
    }

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par corentin59 Voir le message
    Sinon, pour que ça marche, il faut que tu t'arrêtes à "\n"
    En faisant cela, tu changes les specifications du programme (i.e. compter tous les caracteres d'un flux pour la premiere version, tous les L pour la deuxieme). Je rappelle que stdin n'est pas forcement le clavier, ce peut etre un fichier redirige.

  5. #5
    Membre éclairé Avatar de emprex
    Homme Profil pro
    auto-entrepreneur
    Inscrit en
    Octobre 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : auto-entrepreneur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2007
    Messages : 219
    Par défaut
    Merci beaucoup,
    j'ai testé leux solutions et ca marche! Mais il me reste des petites questions
    Comment éviter la manipulation de CTRL-z pour l'éxecution du programme?
    Peut-on coder cet envoi? Et surtout pourquoi ceci n'est pas indiqué de le livre "le Langage C norme ANSI"?

  6. #6
    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 DaZumba Voir le message
    En faisant cela, tu changes les specifications du programme (i.e. compter tous les caracteres d'un flux pour la premiere version, tous les L pour la deuxieme). Je rappelle que stdin n'est pas forcement le clavier, ce peut etre un fichier redirige.
    Et c'est dans cet esprit que sont conçus les exercices du K&R2, ce qui est assez déroutant pour les archi-débutants ou les musomaniaques...

  7. #7
    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 emprex Voir le message
    Merci beaucoup,
    j'ai testé leux solutions et ca marche! Mais il me reste des petites questions
    Comment éviter la manipulation de CTRL-z pour l'éxecution du programme?
    Oui, si le système le permet, en redirigeant l'entrée depuis un fichier :

    DOS ou Console Win32
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\MONESPACE\> monappli < texte.txt
    Unixoïdes
    le programme s'arrêtera tout seul à la fin du fichier...
    Peut-on coder cet envoi?
    De manière simple et portable, non.
    Et surtout pourquoi ceci n'est pas indiqué de le livre "le Langage C norme ANSI"?
    Parce que ce n'est pas un livre pour débutant en informatique. On est censé connaitre son système (unixoïde de préférence, car les allusions sont fréquentes).

  8. #8
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Et c'est dans cet esprit que sont conçus les exercices du K&R2, ce qui est assez déroutant pour les archi-débutants ou les musomaniaques...
    musomaniaque ?

  9. #9
    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 DaZumba Voir le message
    musomaniaque ?
    Désolé pour ce néologisme forgé il y quelques minutes du latin 'mus', souris (qui a donné 'maus', 'mouse' etc.).

    Et oui, le français est une langue vivante !

  10. #10
    Membre éclairé Avatar de emprex
    Homme Profil pro
    auto-entrepreneur
    Inscrit en
    Octobre 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : auto-entrepreneur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2007
    Messages : 219
    Par défaut
    Hé hé,
    Merci pour vos conseils. Je suis sous windows et unix ne me concerne pas pour l'instant. Je pensais que ce livre était l'outil indispensable pour bien apprendre le C meme sous windows et pour débutant. Je vais donc rester sur les cours que vous proposez sur le site.

  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 emprex Voir le message
    Je pensais que ce livre était l'outil indispensable pour bien apprendre le C meme sous windows et pour débutant.
    Le K&R est un bon livre de référence, mais pas un livre pour débuter de 0.

  12. #12
    Membre éclairé Avatar de emprex
    Homme Profil pro
    auto-entrepreneur
    Inscrit en
    Octobre 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : auto-entrepreneur
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2007
    Messages : 219
    Par défaut
    Je fais un IUT informatique en cours du soir, on débute avec le langage C. Puis, dans un second temps nous aborderons le C++ et enfin le Java. Que me conseillez-vous pour suivre cette évolution avec les meilleures bases possibles? Sachant que je n'ai plus fait d'étude depuis près de dix ans et que tout ce que je connais de la programmation c'est un peu de Basic fait sur CPC 6128.

  13. #13
    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 emprex Voir le message
    Je fais un IUT informatique en cours du soir, on débute avec le langage C. Puis, dans un second temps nous aborderons le C++ et enfin le Java. Que me conseillez-vous pour suivre cette évolution avec les meilleures bases possibles? Sachant que je n'ai plus fait d'étude depuis près de dix ans et que tout ce que je connais de la programmation c'est un peu de Basic fait sur CPC 6128.
    En principe, ton 'cours du soir' devrait te fournir les éléments nécessaires pour ton apprentissage (cours, exercices...). Si ce n'est pas le cas, il y a un problème... Cependant, tu peux compléter par un des tutoriels cités sur ce site (ou le mien).

Discussions similaires

  1. Réponses: 16
    Dernier message: 24/06/2005, 12h49
  2. [Eclipse 3.0.1]problème de lancement d'eclipse
    Par sehaba dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 05/04/2005, 10h09
  3. [Plugin] Problème de lancement
    Par relivio dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 03/08/2004, 14h34
  4. [Kylix] Problème de lancement
    Par jaguarwan dans le forum EDI
    Réponses: 1
    Dernier message: 21/02/2004, 22h40
  5. [Install] Problème de lancement sous debian sid
    Par SoaR245 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/02/2004, 10h01

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