Comment transmettre "EOF" à un programme à partir du clavier

Comment transmettre "EOF" à un programme à partir du clavier - C - Programmation

Marsh Posté le 12-04-2005 à 20:52:21    

Salut a tous,
 
J'ai eu à texter un petit programme qui devrait compter le nombre de ligne.
 
Le probleme c'est que je n'arrive pas à bien faire fonctionner le programme car il ne reconnait pas la fin de l'excetion lorsque j'essaye de lui transmettre EOF.
 
Merci pour votre aide

Reply

Marsh Posté le 12-04-2005 à 20:52:21   

Reply

Marsh Posté le 12-04-2005 à 20:55:07    

Ctrl-D


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 12-04-2005 à 20:56:10    

non non montre nous le code plustôt je le sens bien  :)

Reply

Marsh Posté le 12-04-2005 à 20:56:52    

push a écrit :

non non montre nous le code plustôt je le sens bien  :)


 
tu vas encore te moquer :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 12-04-2005 à 20:59:49    

elianor a écrit :

tu vas encore te moquer :o


c'est pas mon genre  :non:  
je suis loin de pouvoir me moquer mais rien ne m'empêche de rigoler  :whistle:

Reply

Marsh Posté le 12-04-2005 à 21:41:14    

sous dos : Ctrl+Z

Reply

Marsh Posté le 12-04-2005 à 21:41:18    

Elionor voila le code en quetion
 
#include <stdio.h>
 
void main (void) {
 
 int c ;
 
 while (c = getchar() != EOF )
 
  printf ("%d\n", c) ;
 
 printf ("%d - at EOF\n", c) ;
 
}

Reply

Marsh Posté le 12-04-2005 à 21:47:49    

oui oui Push voila le code en question !#include <stdio.h>
 
void main (void) {
 
 int c ;
 
 while (c = getchar() != EOF )
 
  printf ("%d\n", c) ;
 
 printf ("%d - at EOF\n", c) ;
 
}

Reply

Marsh Posté le 12-04-2005 à 22:05:07    

Dosantos a écrit :

oui oui Push voila le code en question !#include <stdio.h>
 
void main (void) {
 
 int c ;
 
 while (c = getchar() != EOF )
 
  printf ("%d\n", c) ;
 
 printf ("%d - at EOF\n", c) ;
 
}


 
Ouh putain... pourvu que Taz ne passe pas ici...

int main (void)
{
...
   while ((c = getchar()) != EOF )
...
}


Message édité par Sve@r le 12-04-2005 à 22:10:16
Reply

Marsh Posté le 12-04-2005 à 22:10:00    

Desolé , je me suis trompé sur le code précedent !
 
voici le bon:
 
#include <stdio.h>
 
void main(void) {
 
 int nc  ;
 
 nc = 0 ;
 
 while (getchar () != EOF) {
 
  ++nc ;
 
     printf ("%d\n", nc ) ;
 
 }
 
}

Reply

Marsh Posté le 12-04-2005 à 22:10:00   

Reply

Marsh Posté le 12-04-2005 à 22:20:59    

Indice : une ligne se termine avec '\n' [:petrus75]
 
Indice n°2 : man getchar


Message édité par Pillow le 12-04-2005 à 22:21:45
Reply

Marsh Posté le 12-04-2005 à 22:26:24    

encore un fois de plus desole !  
c'etait encore une fois de plus le mauvais code !!
Sorry, es tut mir leid!!!!
 
voici à present le bon:
 
#include <stdio.h>
 
void main (void) {
 
 int c, nl ;
 
 nl = 0 ;
 
 while( (c = getchar() ) != EOF)
 
  if ( c == '\n' )  
 
   ++nl ;
 
  printf("%d\n", nl) ;
 
}

Reply

Marsh Posté le 12-04-2005 à 22:29:57    

main doit retourner un int :o

Reply

Marsh Posté le 13-04-2005 à 12:05:12    

Dosantos a écrit :

encore un fois de plus desole !  
c'etait encore une fois de plus le mauvais code !!
Sorry, es tut mir leid!!!!
 
voici à present le bon:

#include <stdio.h>
void main (void)
{
 int c, nl ;
 nl=0 ;
 while ((c=getchar()) != EOF)
  if (c == '\n')  
   ++nl;
 
 printf("%d\n", nl);
}



 
Mis à part que "main" est de type "int" comme l'a dit Pillow, je vois pas ce qui peut merder dans ce programme... Peut-être des accolades pour plus de lisibilité...
 
Si tu veux le tester depuis Linux/Unix, tu le lances et pour finir ta saisie => CTRL-D
Si c'est depuis un autre OS que je ne nommerai pas, => CTRL-Z (je crois)

Reply

Marsh Posté le 13-04-2005 à 12:20:51    

Sve@r a écrit :

Si c'est depuis un autre OS que je ne nommerai pas, => CTRL-Z (je crois)


VMS, Mac OS, Psos ? Il vaut mieux nommer, c'est plus précis.  
 
Et puis, il n'y a aucune honte à utiliser MS-DOS/Windows ou Windows NT pour lesquels Ctrl-Z est bien la fin de lecture.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 13-04-2005 à 12:55:00    

Sve@r a écrit :

Ouh putain... pourvu que Taz ne passe pas ici...

int main (void)
{
...
   while ((c = getchar()) != EOF )
...
}



 
pourquoi ? c est de type int, l'erreur aurait été de declarer c en char

Reply

Marsh Posté le 13-04-2005 à 21:24:38    

skelter a écrit :

pourquoi ? c est de type int, l'erreur aurait été de declarer c en char


 
L'erreur a été de déclarer "main" en void  :D  :sol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed