Bonjour.

Je suis en train de lire le K&R2, et je lis en parallèle des solutions proposées aux exercices du livre sur ce wiki :

http://clc-wiki.net/wiki/K%26R2_solu...r_1:Exercise_9

J'ai beau relire et bien réfléchir, il me semble que la troisième solution utilise inutilement l'opérateur ET logique.

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
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
	int c;
	while ((c = getchar()) != EOF) {
		 if (c == ' ') {
			putchar(c);
		 	while((c = getchar()) == ' ' && c != EOF)
				;
		}
		if (c == EOF)
			break; /* the break keyword is mentioned
				* in the introduction... 
				* */
 
		putchar(c);
	}
	return 0;
}
Je veux dire la comparaison c != EOF dans la deuxième boucle me semble superflue, puisque le but est d’exécuter la boucle tant que c = ' ' et elle n'est pas exécutée avec tout autre valeur (EOF compris).

Quelque chose m'échappe ou ai je raison ?