Como posso escanear strings com espaços nelas usando scanf ()? [duplicado]

Esta questão já tem uma resposta aqui:

Lendo string de entrada com caractere de espaço? [duplicado] 14 respostas

Eu quero escrever um subprograma em que um usuário pode inserir seu comentário. eu usoscanf("%s", X) e deixe-os inserir um comentário, mas ele só pode armazenar a palavra antes de uma barra de espaço na string.

Como posso resolver esse problema para armazenar uma frase inteira em uma string ou em um arquivo?

Meu código é apresentado abaixo:

FILE *fp;
char comment[100];
fp=fopen("comment.txt","a");
printf("You can input your comment to our system or give opinion to the musics :\n");
scanf("%s",comment);
fputs(comment,fp);

questionAnswers(4)

yourAnswerToTheQuestion