Comment transmettre "EOF" à un programme à partir du clavier - C - Programmation
Marsh Posté le 12-04-2005 à 20:55:07
Ctrl-D
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 ![]()
Marsh Posté le 12-04-2005 à 20:59:49
| elianor a écrit : tu vas encore te moquer   | 
 
c'est pas mon genre  
  
je suis loin de pouvoir me moquer mais rien ne m'empêche de rigoler  
 
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) ; 
 
}
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) ; 
 
}
Marsh Posté le 12-04-2005 à 22:05:07
| Dosantos a écrit : oui oui Push voila le code en question !#include <stdio.h>   | 
 
 
Ouh putain... pourvu que Taz ne passe pas ici... 
int main (void)   | 
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 ) ; 
 
 } 
 
} 
Marsh Posté le 12-04-2005 à 22:20:59
Indice : une ligne se termine avec '\n' 
 
 
Indice n°2 : man getchar
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) ; 
 
} 
Marsh Posté le 13-04-2005 à 12:05:12
| Dosantos a écrit : encore un fois de plus desole !   
  | 
 
 
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) 
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. 
 
Marsh Posté le 13-04-2005 à 12:55:00
| Sve@r a écrit : Ouh putain... pourvu que Taz ne passe pas ici...  
  | 
 
 
pourquoi ? c est de type int, l'erreur aurait été de declarer c en char 
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  
  
 
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