Tiene toda la pinta de ser por que se ha llenado el buffer y se ha vuelto loco
. O limpias el buffer de esta manera:
Poniendo el código anterior antes de cada scanf.
O usando fgets + sscanf(para evitar que se llene el buffer)(Este código lo puso Eternal Idol en su momento):
Revisa este post que está en las chinchetas: |Lo que no hay que hacer en C/C++. Nivel basico|
![:rolleyes: :rolleyes:](https://forum.elhacker.net/Smileys/navidad/rolleyes.gif)
Código (c) [Seleccionar]
while(c=getchar() != '\n'&& c!= EOF);
Poniendo el código anterior antes de cada scanf.
O usando fgets + sscanf(para evitar que se llene el buffer)(Este código lo puso Eternal Idol en su momento):
Código (c) [Seleccionar]
#include <stdio.h>
int main(int argc, char **argv)
{
int opcion;
do
{
printf("Opcion: ");
char linea[80];
fgets(linea, sizeof(linea), stdin);
sscanf(linea, "%d",&opcion);
}
while(opcion!=0);
return 0;
}
Revisa este post que está en las chinchetas: |Lo que no hay que hacer en C/C++. Nivel basico|