Я очень новичок в программировании на C, и я пытаюсь понять, как действительно работает fflush(stdin).
В следующем примере fflush(stdin) очищает весь буфер или очищает все, что было введено после третьего элемента? Я имею в виду, что пользователь вводит номер счета, пробел, имя, пробел, баланс. Это правда, что с этого момента все, что вводит пользователь, будет сброшено с помощью fflush(stdin)? и stdin не будет пустым.
Почему я говорю, что это потому, что он входит в цикл while и начинает писать в текстовый файл.
Мой второй вопрос: может ли Ctrl-Z OS перестать запрашивать у пользователя ввод ввода?
printf( "Enter the account name and balance. (separated by spaces)\n" );
printf( "Enter EOF to end input. (Ctrl-Z)\n" );
printf( "? " );
scanf( "%d%s%lf", &account, name, &balance );
fflush(stdin);
// write account, name and balance into file with fprintf
while ( !feof( stdin ) )
{
//fflush(stdin);
fprintf( cfPtr, "%d %s %.2f\n", account, name, balance );
printf( "? " );
scanf( "%d%s%lf", &account, name, &balance );
}
fclose( cfPtr );