Come mai il programma ignora la funzione gets(lo fa solo al momento di inserire il comune: non richiede l'input dall'utente e quando deve stamparlo non lo stampa)?

codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define FILE_COMUNI  "codicicatastali.txt"

int main(int argc, char *argv[])
{
  char nome[20],cognome[20],data[7],nome_comune[60];
  char sesso;
  
  printf("Inserire:\nNome:\nCognome:\nData di nascita in formato GG/MM/AA:\nSesso(m or f):\nComune di nascita:");
  
  gotoxy(6,2);gets(nome);
  gotoxy(9,3);gets(cognome);
  gotoxy(37,4);gets(data);
  gotoxy(15,5);scanf("%c",&sesso);       
  gotoxy(19,6);gets(nome_comune);gotoxy(1,7);
  
  printf("Verifica dati inseriti:\n");
  printf("Nome:%s\nCognome:%s\nData:%s\nSesso:%c\nComune:%s",nome,cognome,data,sesso,nome_comune);
  
  system("PAUSE");	
  return 0;
}