Nunca vi tal mientras que la declaración antes.expresión separada por comas en el ciclo while en C
while(printf("> "), fgets(str, 100, stdin), !feof(stdin)) {
..
..
}
He leído en línea, que la condición para salir del lazo while es la más a la derecha [! Feof (stdin)]. Entonces, ¿cuál es el uso de los anteriores mientras declaración en oposición a
while(!feof(stdin))
{
printf("> ");
fgets(str, 100, stdin);
...
...
}
Además, mientras afirmación adquiere una expresión, por lo que es 1,1,1 una expresión válida en C?
En realidad, el bucle tal como está escrita se efectuará sin procesar la línea 'fgets' dejar de recibir EOF en lugar de recibir una nueva línea. Esto hace que el ciclo ignore una línea final que no termina en una línea nueva, que puede ser el comportamiento deseado, pero más probablemente un error. –
@R .: Me acuerdo de la observación de http://www.drpaulcarter.com/cs/common-c-errors.php#4.2: "El autor aún no ha visto a ningún alumno usar la función feof() ¡correctamente!" –