我是C编程的新手,我正在努力了解它是如何fflush(stdin)工作的.
在下面的示例中,是否fflush(stdin)清除所有缓冲区或清除在第三个项目后输入的内容?我的意思是用户输入帐号,空格,名称,空格,余额.这是真的,从这一点开始,用户输入的内容将被刷新fflush(stdin)吗?并且stdin不会是空的.
为什么我这样说是因为它进入了while循环并开始写入文本文件.
我的第二个问题是是否Ctrl-Z会告诉操作系统停止要求用户输入输入?
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 …Run Code Online (Sandbox Code Playgroud)