Я никогда раньше не видел такого while.
while(printf("> "), fgets(str, 100, stdin), !feof(stdin)) {
..
..
}
Я читаю онлайн, что условие выхода из цикла while является самым правым [! feof (stdin)]. Затем, что используется вышеприведенный оператор while, а не
while(!feof(stdin))
{
printf("> ");
fgets(str, 100, stdin);
...
...
}
Кроме того, выражение while принимает выражение, равно 1,1,1 действительное выражение в C?