fprintf运行时出错求助

我编了一个小程序,用fprintf写入几个账户记录,但是运行的时候写入了一个记录之后,程序就停止了。不知道是哪里写错了呢?请帮忙指点一下!

 #include <stdio.h>
FILE *cfPtr;
int main(void)
{
    int account;
    char name[30];
    double balance;
    errno_t err;


    err = fopen_s(&cfPtr, "clients.dat", "w");
    if (err != 0){
        printf( "File could not be opened.\n");
    }/* End if */
    else{
        printf( "输入 账户、姓名、余额\n");
        printf( "输入EOF以结束。\n");
        printf( "? ");
        scanf_s("%d%s%lf", &account, name, &balance); 

        while (!feof(stdin)){
            fprintf( cfPtr, "%d %s %.2f\n", account, name, balance );
            printf( "? " );
            scanf_s( "%d%s%lf", &account, name, &balance );
        }/* End while */


        fclose( cfPtr );
    }/* End else */

    return 0;
}/* End main */

图片说明

图片说明
编辑之后按不到确定键,不好意思就在这里添加一张图片。

scanf_s在输入%c或者%s时,必须多传一个参数用以指定读取的长度,否则会出错

 #include <stdio.h>
FILE *cfPtr;
int main(void)
{
    int account;
    char name[30];
    double balance;
    errno_t err;


    err = fopen_s(&cfPtr, "clients.dat", "w");
    if (err != 0){
        printf("File could not be opened.\n");
    }/* End if */
    else{
        printf("输入 账户、姓名、余额\n");
        printf("输入EOF以结束。\n");
        printf("? ");
        scanf_s("%d%s%lf", &account, name, 30, &balance);

        while (!feof(stdin)){
            fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
            printf("? ");
            scanf_s("%d%s%lf", &account, name, 30, &balance);
        }/* End while */


        fclose(cfPtr);
    }/* End else */

    return 0;
}/* End main */