Ho un problema nell'input di stringhe, ecco il codice:

codice:
        char giocatore1[16], giocatore2[16];
        printf("\n\n\tInserire il nome del giocatore 1: ");
        scanf("%[^\n]", &giocatore1);
        system("cls");
        printf("\n\n\tInserire il nome del giocatore 2: ");
        scanf("%[^\n]", &giocatore2);
        system("cls");
In questo modo quando il programma incontra la scanf non si ferma e aspetta il mio input, ma assegna immediatamente dei valori assurdi alle due stringhe. Come risolvo?
p.s. %[^\n] lo uso per far accettare alla stringa anche gli spazi.