Si revisa la página del man
para scanf()
, verá,
Estas funciones devuelven el número de elementos de entrada que coinciden y asignan con éxito, que pueden ser menos de lo previsto o incluso cero en caso de una falla de coincidencia temprana.
El valor EOF se devuelve si se alcanza el final de la entrada antes de que ocurra la primera conversión exitosa o se produzca una falla coincidente. EOF también se devuelve si se produce un error de lectura, en cuyo caso se establece el indicador de error para la secuencia (ver ferror (3)) y se establece errno para indicar el error.
Entonces, en su caso, scanf () puede devolver 0, 1, 2, 3 o EOF.
- [matemáticas] x \ neq y \ neq z [/ matemáticas], si [matemáticas] x ^ 2- \ frac {yz} {a} = y ^ 2- \ frac {zx} {b} = x ^ 2- \ frac {xy} c [/ math] ¿cuál sería el valor simplificado de [math] (a + b + c) (x + y + z) [/ math]?
- No soy bueno en cálculo mental, pero soy bueno en álgebra. ¿Cómo puedo mejorar la habilidad de cálculo mental?
- Si el inverso de una relación directamente proporcional es inversamente proporcional, ¿cómo se llama el inverso de una relación lineal?
- ¿Por qué es útil discernir ecuaciones que son funciones de las que no lo son?
- Cómo resolver la integral doble de e ^ sin (x + y)
Complementar 0, 1, 2 o 3 da como resultado un valor distinto de cero y el ciclo while continuará.
Para la mayoría de las implementaciones, EOF es -1 y ~ -1 = 0. Entonces, lo que intenta el código anterior es continuar solicitando entradas hasta que se proporcione el carácter EOF.
Pero tengo que decir que está mal y depende completamente de que EOF sea igual a -1. Además, el código tampoco es legible.
En sistemas Linux y OS X, puede pasar EOF por Ctrl + D. Para Windows, es Ctrl + Z.