-
Notifications
You must be signed in to change notification settings - Fork 0
/
tarefas.c
94 lines (79 loc) · 2.39 KB
/
tarefas.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <stdio.h>
#include <string.h>
#include "tarefas.h"
ERROS criar(Tarefa tarefas[], int *pos ){
if (*pos >= TOTAL)
return MAX_TAREFAS;
printf("Entre com a prioridade: ");
scanf("%d", &tarefas[*pos].prioridade);
clearBuffer();
printf("Entre com a categoria: ");
fgets(tarefas[*pos].categoria,100,stdin);
printf("Entre com a descrição: ");
fgets(tarefas[*pos].descricao,300,stdin);
/*printf("D: %s\n", tarefas [*pos].descricao);
printf("P: %s\n", tarefas [*pos].categoria);*/
*pos = *pos +1;
return OK;
}
ERROS deletar(Tarefa tarefas[], int *pos ){
// teste se existem tarefas
if (*pos == 0)
return SEM_TAREFAS;
// verfica se a tarefa escolhida existe
int pos_deletar;
printf("ENtre com a posição da tarefa a ser deletada: ");
scanf("%d", &pos_deletar);
pos_deletar--; // garantir posiçao certa no array
if(pos_deletar >= *pos || pos_deletar <0)
return NAO_ENCONTRADA;
for (int i = pos_deletar; i<*pos;i++){
tarefas[i].prioridade = tarefas[i+1].prioridade;
strcpy(tarefas[i].categoria , tarefas[i+1].categoria);
strcpy(tarefas[i].descricao , tarefas[i+1].descricao);
}
*pos = *pos-1;
return OK;
}
ERROS listar(Tarefa tarefas[], int *pos ){
if (*pos == 0 )
return SEM_TAREFAS;
for (int i =0; i<*pos; i++){
printf("Pos: %d\t", i+1);
printf("Prioridade: %d\t", tarefas[i].prioridade);
printf("Categoria: %s\t", tarefas[i].categoria);
printf("Descrição: %s\n", tarefas[i].descricao);
}
return OK;}
ERROS salvar(Tarefa tarefas[], int *pos ){
FILE *f = fopen("tarefas.bin","wb");
if (f == NULL)
return ABRIR;
int qtd = fwrite(tarefas, TOTAL, sizeof(Tarefa),f);
if(qtd ==0)
return ESCREVER;
qtd = fwrite(pos,1,sizeof(int),f);
if (qtd ==0)
return ESCREVER;
if (fclose(f))
return FECHAR;
return OK;
}
ERROS carregar(Tarefa tarefas[], int *pos ){
FILE *f = fopen("tarefas.bin","rb");
if (f == NULL)
return ABRIR;
int qtd = fread(tarefas, TOTAL, sizeof(Tarefa),f);
if(qtd ==0)
return LER;
qtd = fread(pos,1,sizeof(int),f);
if (qtd ==0)
return LER;
if (fclose(f))
return FECHAR;
return OK;
}
void clearBuffer(){
int c;
while ((c = getchar())!= '\n' && c != EOF);
}