-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClase de Ficheros Parte III.c
200 lines (88 loc) · 3.94 KB
/
Clase de Ficheros Parte III.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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NOMBRE_MODELO 40
//-------------------------------------------------------------------
// FICHEROS PARTE 3
//-------------------------------------------------------------------
/* Este codigo sirve para introducir los difrentes modelos de bugatti y los
almacena en un struct con varios campos */
//En el fichero debe estar lo mismo que en el struct.
/*
Nombre de modelo
Numero de modelos
*/
struct Bugatti{
char nombre_modelo[MAX_NOMBRE_MODELO];
int numero_de_modelos;
};
//--------------------------------------------------------------
int Menu(){
int opciones;
printf("\n\n****MENU****");
printf("\n1. Introduce un modelo.");
printf("\n2. Mostrar modelos agregados.");
return opciones;
}
//--------------------------------------------------------------
int main()
{
FILE *Fichero;
char nombre_del_fichero[80]; //Recuera simepre ponerle un tamaño nombre_del_fichero [Tamaño]
struct Bugatti b[4];
int i = 0;
int opciones;
//-------------------------------------------------------------------------------------------------------------------------------
for(;;){
Menu();
printf("\n\nItroduce una opcion: "); scanf("%d",&opciones);
switch(opciones){
case 1:
if(i<5){
printf("\n\nIntroduce el nombre del archivo (Ejemplo: fichero.txt): "); fflush(stdin); gets(nombre_del_fichero);
Fichero = fopen(nombre_del_fichero,"r");
if(Fichero == NULL){
printf("\ERRO:Arhivo no econtrado");
}else{
printf("\nArhivo econtrado");
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fgets(b[i].nombre_modelo,MAX_NOMBRE_MODELO,Fichero); //Lee la primera fila y la mete en b.nombre_modelo
b[i].nombre_modelo[strcspn(b[i].nombre_modelo, "\n")] = '\0'; //Esta sentencia sirve para eliminar el salto de linea del fuchero.txt
/*Lo que hace es: de "b.nombre_modelo" busca la posición de "\n" que
es el salto de linea. Ejem: Tenemos "b.nombre_modelo[40]" y con esto detecta
que el salto está en "b.nombre_modelo[13]".
Una vez detectado susitulle el "\n" por el caracter nulo '\0'.
*/
fscanf(Fichero,"%d",&b[i].numero_de_modelos); //Lee la segunda fila y la mete en b.numero_de_modelos
fclose(Fichero);
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
printf("\n\n------------------------");
printf("\n%s",b[i].nombre_modelo);
printf("\n%d",b[i].numero_de_modelos);
printf("\n------------------------");
i++;
}
} else{
printf("\nNo se pueden agregar más coches");
}
break;
case 2:
for(int j=0; j<i; j++){ //Bucle para mostrar todos los coches leidos
printf("\n\n------------------------");
printf("\n%s",b[j].nombre_modelo);
printf("\n%d",b[j].numero_de_modelos);
printf("\n------------------------");
}
break;
case 3:
//-------------------------------------------------------------------------------------------------------------------------------------
printf("\n\n\nHola, espero que te haya ayudado este codigo, si quieres la parte 4 de ficheros, mira mi Github EnriqueBDL.");
printf("\n\nEste documento es de uso pribado, por lo que si se comparte sin permiso, sera denunciado.\n\n");
//-------------------------------------------------------------------------------------------------------------------------------------
printf("\nSaliendo...");
return 0;
break;
}
}
return 0;
}