daily pastebin goal
60%
SHARE
TWEET

Untitled

a guest Jan 12th, 2018 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void add_message_conversa(CORPUS *pc){
  2.    
  3.     MENSAGEM *pnew = NULL, *paux=NULL, *pant = NULL;
  4.     CONVERSA *cgets = NULL;
  5.     char name[50] = "", mensagem[50] = "";
  6.    
  7.     printf("Insira o nome do utilizador:");
  8.     fgets(name, 100, stdin);
  9. //    fflush(stdin);
  10. //    gets(name);
  11.    
  12.     //Assume a primeira conversa da lista do Corpus
  13.     cgets = pc->pfirst;
  14.     while (cgets != NULL && strcmp(cgets->nomeconversa,name)!=0) {
  15.         cgets = cgets->pnext;
  16.     }
  17.    
  18.     if (cgets == NULL) {
  19.         printf("Contacto nao existe");
  20.         return;
  21.     }
  22.    
  23.     //Alocação de uma nova estrutura e inicialização das variaveis
  24.     pnew = (MENSAGEM*)malloc(sizeof(MENSAGEM));
  25.     pnew->pnext = NULL;
  26.     pnew->timestamp = 0;
  27.    
  28.     printf("Introduza o nome do utilizador:");
  29.     fgets(pnew->username, 100, stdin);
  30. //    fflush(stdin);
  31. //    gets(pnew->username);
  32.    
  33.     printf("Introduza a mensagem:");
  34. //    fgets(mensagem, strlen(mensagem), stdin);
  35.     fflush(stdin);
  36.     gets(mensagem);
  37.     pnew->mensagem = create_copy_dyn_string(mensagem);
  38.    
  39.     //falta fazer o timestamp e da data - apenas estou a testar a ordenaçao
  40.     printf("introduza o timestamp:");
  41.     scanf("%d", &(pnew->timestamp));
  42.    
  43.     //Se o apontador pmensagem == NULL, conversa->pmensagem assume esta nova estrutura
  44.     if (cgets->pmensagem == NULL) {
  45.         cgets->pmensagem = pnew;
  46.         return;
  47.     }
  48.    
  49.     pant = NULL;
  50.     paux = cgets->pmensagem;
  51.     while (paux != NULL && pnew->timestamp > paux->timestamp) {
  52.         pant = paux;
  53.         paux = paux->pnext;
  54.     }
  55.    
  56.     //inserir na cabeça
  57.     if (paux == cgets->pmensagem) {
  58.         printf("A ser inserido na cabeça!\n");
  59.         pnew->pnext = paux;
  60.         cgets->pmensagem = pnew;
  61.         return;
  62.     }
  63.    
  64.     //Inserir na cauda
  65.     if (paux == NULL) {
  66.         printf("A ser inserido na cauda!\n");
  67.         pant->pnext = pnew;
  68.         return;
  69.     }
  70.    
  71.     //Inserir no meio
  72.     printf("A ser inserido no meio!\n");
  73.     pnew->pnext = paux;
  74.     pant->pnext = pnew;
  75. }
RAW Paste Data
Top