Language c test d'arret d'une boucle

Bonjour,
je suis un débutant dans la programmation en c
j'ai voulu exécuter un programme qui contient une boucle avec un test d'arrêt
getchar()!=EOF
mais le programme ne se termine pas car je n'ai pas su comment saisir le EOF -la condition d'arret- aprés l'éxecution du programme
pourriez vous m'aider
merci;
Configuration: Windows XP
Firefox 2.0.0.13

7 réponses

  1. Contributeur
    ça dépend aussi de ta commande de lancement.
    as tu utiliser l'indirection ? genre:
    prog<machin.txt
    J'ai souvent remarqué que les exemple des livres ne fonctionnaient pas. Souvent les auteurs les écrivent sans tester, ils oublient des menus détails. Le but étant d'avoir le principe général. Si tu ne trouve pas EOF, c'est pas grave, utilise un autre caractère.
    0
    1. oui merci vous avez raison je vais utiliser un autre caractère mais je voulais juste comprendre ou est le problème
      merci
      0
  2. EOF c'est pour qu'en tu utilise un fichier...
    definit c comme un char et utilise un caractere special pour la condition d'arret
    0
    1. merci pour votre réponse
      c'est simple de programmer un test d'arret
      mais moi j'ai voulu tester l'exemple que j'ai trouvé dans le livre
      "The C programming Language" de By Brian W. Kernighan and Dennis M. Ritchie
      et ça ma surprie que l'exemple cité dans un tel livre ne marche pas
      et j'essai de trouver l'erreur
      merci encore
      0
  3. Contributeur
    as tu essayé ctrl+D ?
    0
    1. merci
      ctrl+D ça n'a pas marché
      0
  4. merci a tous
    le voila le programme que j'ai essayé d'implémenter

    #include <stdio.h>
    /* copy input to output; 1st version */
    main()
    {
    int c;
    c = getchar();
    while (c != EOF) {
    putchar(c);
    c = getchar();
    }
    }

    alors ce n'est pas possible d'utiliser exit
    j'attend vos réponses et merci a tous
    0
    1. Remplace EOF par un caractère qui sera utilisé uniquement pour arrêter le programme, un caractère que tu es sûr de ne pas utiliser dans un autre cas, par exemple '¤' ou '§', ça dépend à quoi correspondent les caractères que tu entres.
      0
    2. @Laarisle compilateur me repond qu'il y a une comparaison illegal
      pointeur avec caractaire
      merci encore
      merci
      0
  5. EOF (pour "End Of File") c'est pour quand ta boucle parcourt le contenu d'un fichier, pour tester si tu es arrivé à la fin.

    Si ta boucle te demande un caractère à saisir jusqu'à ce que tu saisisses un caractère particulier il ne faut pas utiliser EOF, mais définir un caractère qui servira à arrêter cette boucle.
    0
    1. Contributeur
      il me semble que EOF, c'est ctrl+D
      mais pourquoi utiliser EOF, et pas un autre caractère ?
      regarde là si tu veux utiliser des caractère un peu spéciaux : https://fr.wikipedia.org/wiki/ASCII
      0
      1. Salut,
        tu n'as qu'à saisir une chaine de caractères particulière, genre "exit", comme pour une fenêtre dos
        0