If there are more than one statements that you want to write in a loop or if statement, then you must use braces {}
to define which statements come in the loop.
In your code, only the printf("Insert a non negative number: ");
statement is in the loop, and nothing is changing the input
‘s value in the loop, so if the loop’s condition is true, it will always remain true.
Change it to:
while ( atoi(input) < 0 || ( strcmp(input, "0") != 0 && atoi(input) == 0 ) )
{
printf("Insert a non negative number: ");
fgets(input, 4, stdin);
}
0
solved Stuck in infinite fgets loop