What is wrong with the scanf() to get in the string on the second time, I can't input my string on the second time. I am not sure with the error that occurs, I can't get this program function well
#include <stdio.h>
#include <stdlib.h>
int main()
{
    //variables decleration
    char staff_name1[31];
    char staff_name2[31];
    float sales1, sales2;
    //input
    printf("Enter staff name\t> ");
    scanf("%[^\n]s", staff_name1);
    printf("Enter sales amount\t> ");
    scanf("%f", &sales1);
    printf("\nEnter staff name \t> ");//ERROR,CAN'T INPUT MY STRING
    fflush(stdin);
    scanf("%[^\n]s", staff_name2);
    printf("\nEnter sales amount\t> ");
    scanf("%f", &sales2);
    printf("\n");
    //output
    printf("Staff Name\t\t\t\tSales Amount\n");
    printf("===================\t\t=============\n");
    printf("%-20s \t%12.2f\n", staff_name1, sales1);
    printf("%-20s \t%12.2f\n", staff_name2, sales2);
}
my output of this code is as below:
warning: this program uses gets(), which is unsafe.
Enter staff name   > kh s
Enter sales amount > 134.14
Enter staff name   > 
Enter sales amount > 141243.14
Staff Name              Sales Amount
===================     =============
kh s                          134.14
                           141243.14
I can't input the second staff name. Can anyone please help me solve this??