J'ai besoin de lire tous les entiers jusqu'à l'EOF. J'essaye ce code et le problème est que le programme ne détecte pas l'EOF et continue à courir. Ce dont j'ai besoin est de recevoir toutes les données et de passer automatiquement à la ligne de code suivante (le code fonctionne en appuyant sur Ctrl-D après l'entrée).Lire les entiers jusqu'à EOF en C
int x, sum = 0;
while (scanf("%d", &x) == 1) {
sum += x;
}
if (feof(stdin)) {
printf ("SUM: %d\n", sum);
} else {
printf("ERROR\n");
}
return 0;
Alors, quel est le problème? – PSkocik
Vous avez tout fait correctement et il se comporte comme il se doit.^D envoie l'EOF quand votre stdin est un terminal, et il fonctionne aussi avec de vrais fichiers. – PSkocik
Peut-être y a-t-il confusion sur ce que signifie EOF pour STDIN? Cela ne signifie pas "ligne vide". – Schwern