Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void add_message_conversa(CORPUS *pc){
- MENSAGEM *pnew = NULL, *paux=NULL, *pant = NULL;
- CONVERSA *cgets = NULL;
- char name[50] = "", mensagem[50] = "";
- printf("Insira o nome do utilizador:");
- fgets(name, 100, stdin);
- // fflush(stdin);
- // gets(name);
- //Assume a primeira conversa da lista do Corpus
- cgets = pc->pfirst;
- while (cgets != NULL && strcmp(cgets->nomeconversa,name)!=0) {
- cgets = cgets->pnext;
- }
- if (cgets == NULL) {
- printf("Contacto nao existe");
- return;
- }
- //Alocação de uma nova estrutura e inicialização das variaveis
- pnew = (MENSAGEM*)malloc(sizeof(MENSAGEM));
- pnew->pnext = NULL;
- pnew->timestamp = 0;
- printf("Introduza o nome do utilizador:");
- fgets(pnew->username, 100, stdin);
- // fflush(stdin);
- // gets(pnew->username);
- printf("Introduza a mensagem:");
- // fgets(mensagem, strlen(mensagem), stdin);
- fflush(stdin);
- gets(mensagem);
- pnew->mensagem = create_copy_dyn_string(mensagem);
- //falta fazer o timestamp e da data - apenas estou a testar a ordenaçao
- printf("introduza o timestamp:");
- scanf("%d", &(pnew->timestamp));
- //Se o apontador pmensagem == NULL, conversa->pmensagem assume esta nova estrutura
- if (cgets->pmensagem == NULL) {
- cgets->pmensagem = pnew;
- return;
- }
- pant = NULL;
- paux = cgets->pmensagem;
- while (paux != NULL && pnew->timestamp > paux->timestamp) {
- pant = paux;
- paux = paux->pnext;
- }
- //inserir na cabeça
- if (paux == cgets->pmensagem) {
- printf("A ser inserido na cabeça!\n");
- pnew->pnext = paux;
- cgets->pmensagem = pnew;
- return;
- }
- //Inserir na cauda
- if (paux == NULL) {
- printf("A ser inserido na cauda!\n");
- pant->pnext = pnew;
- return;
- }
- //Inserir no meio
- printf("A ser inserido no meio!\n");
- pnew->pnext = paux;
- pant->pnext = pnew;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement