Vorrei sapere come poter leggere anche gli spazi quando richiedo l'inserimento di una stringa.

Ho fatto una prova con un programma che richiede l'inserimento di una frase da tastiera e scrive iil contenuto in un file.

codice:
#include <stdio.h>

#define WAIT system("pause")

int main()
{
    char str[100];
    FILE *stream, *fopen();
    stream = fopen("mio.txt", "w");
    
    // testo il puntatore al file
    if (stream==NULL) {
       printf ("Errore! Non è stato possibile creare il file\n");
       WAIT;
       exit(1);
    }
    
    printf ("Inserire una frase: ");
    fscanf (stdin, "%s", str);
    fprintf (stream, "Frase inserita: %s", str);
    
    fclose(stream);
    WAIT;
    return 0;
}
Il problema è che non legge gli spazi.
Se per esempio da tastiera inserisco:
Ciao come stai , sul file mi ritrovo solo Ciao senza il resto della frase.

Come posso leggere anche gli spazi?