-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ristorante.c
134 lines (122 loc) · 3.69 KB
/
Ristorante.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#define Ordini "ordinazioni.txt"
#define MAX_ORDINAZIONE 2000
void rimuovi_n(char *str)
{
str[strcspn(str, "\n")] = '\0';
}
int main()
{
FILE *file = fopen(Ordini, "a");
if (!file) {
fclose (file);
FILE *file = fopen (Ordini, "w");
}
fclose (file);
char Ordinazione[MAX_ORDINAZIONE];
int scelta;
while (1)
{
printf("\n----Organizzatore di ordinazioni----\n1. Aggiunta ordine\n2. Lettura ordini\n3. Eliminazione ordine\n4. Chiusura programma\n\nChe cosa desidera fare (1-4): ");
scanf("%d", &scelta);
getchar();
switch (scelta)
{
case 1:
printf("\nInserire ordinazione: ");
fgets(Ordinazione, sizeof(Ordinazione), stdin);
rimuovi_n(Ordinazione);
FILE *file = fopen(Ordini, "a");
if (file)
{
fprintf(file, "%s\n", Ordinazione);
fclose(file);
printf("\nAggiunta ordinazione: %s", Ordinazione);
}
else
{
printf("\nErrore nel aprire il file, riprovare");
}
Sleep(4000);
system("cls");
break;
case 2:
{
FILE *file = fopen(Ordini, "r");
if (file)
{
printf("\nEcco le ordinazioni attuali: ");
while (fgets(Ordinazione, sizeof(Ordinazione), file))
{
printf("%s", Ordinazione);
}
fclose(file);
}
else
{
printf("\nErrore nel aprire il file, riprovare");
}
Sleep(4000);
system("cls");
}
break;
case 3:
printf("\nQual e' ordinazione che volete rimuovere: ");
fgets(Ordinazione, sizeof(Ordinazione), stdin);
rimuovi_n(Ordinazione);
{
FILE *file = fopen(Ordini, "r");
if (!file)
{
printf("\nErrore nel aprire il file, riprovare");
Sleep(3000);
system("cls");
break;
}
FILE *tempfile = fopen("temp.txt", "w");
char line[MAX_ORDINAZIONE];
int find = 0;
while (fgets(line, sizeof(line), file))
{
rimuovi_n(line);
if (strcmp(line, Ordinazione) != 0)
{
fprintf(tempfile, "%s\n", line);
}
else
{
find = 1;
}
}
fclose(file);
fclose(tempfile);
remove(Ordini);
rename("temp.txt", Ordini);
if (find)
{
printf("\nL'ordinazione e' stata rimossa");
}
else
{
printf("\nL'ordinazione non e' stata trovata");
}
Sleep(4500);
system("cls");
break;
}
case 4:
printf("\nGrazie di aver usato il programma!");
Sleep(4000);
return 0;
default:
printf("\nPosto un comando sbagliato, per favore rifare");
Sleep(5000);
system("cls");
break;
}
}
return 0;
}