elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
21  Programación / Programación C/C++ / Re: Pasar estructura a archivo distinto del que contiene la función main[C] en: 11 Mayo 2015, 23:40 pm
Hola.
El segundo archivo es para establecer la diferencia en días de la consulta (Fecha inicio y Fecha final), lo que no entiendo es porque no me da error en la variable *totalDias y si en la estructuras Fechas,  yo creí que al incluirlo en el archivo que tiene la función principal debería funcionar.-
Bueno no tengo más que aportar, espero que me digas si te surge alguna idea más del porqué del error.-   

Saludos.
Daniel   
22  Programación / Programación C/C++ / Pasar estructura a archivo distinto del que contiene la función main[C] en: 11 Mayo 2015, 19:33 pm
Hola Gente.
Estoy aprendiendo a modular código en c y en el código que les dejo a continuación me da el siguiente error. Error: nombre de tipo desconocido ‘Fecha’, en las líneas 3:14 y 3:28.-
Dentro del mismo archivo siempre pase de esta manera las estructuras a funciones o cuando es muy grande con una variable puntero, pero en este caso me da error.-

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <time.h>
  4. #include "fechaDifDias.c"
  5.  
  6. #define MENSAJE printf( "\n\n Pulse [Enter] para continuar..." ); getchar();
  7.  
  8. typedef struct{
  9. int orden;
  10. char b;
  11. char fecha[11];
  12. float verduras;
  13. float almacen;
  14. char nota[101];
  15. }Super;
  16.  
  17. typedef struct{
  18. int dia;
  19. int mes;
  20. int año;
  21. }Fecha;
  22.  
  23. int mainMenu(void);
  24. void contarRegistros( FILE *ptrFile, Super *super, int *registros, int tamStructSuper );
  25. void rellenar_estructura(FILE *ptrFile, Super *super, int *opcRe);
  26. void escribir_archivo(FILE *ptrFile, Super *super, int tamStructSuper, int registros);
  27. void leer_archivo(FILE *ptrFile, Super *super, int registros, int cualLeer, int tamStructSuper);
  28. void buscar(FILE *ptrFile, Super *super, int tamStructSuper, int *contarReg, int *cualLeer);
  29. int resBusqueda(Super *super);
  30. void consultation(FILE *ptrFile, Super *super, int tamStructSuper);
  31. int validarFechas(  Fecha inicio, Fecha final, Fecha consulta );
  32. void feDiDi( Fecha inicio, Fecha final, int *totalDias );
  33.  
  34. int main(void){
  35. mainMenu();
  36.  
  37. return 0;
  38. }
  39.  
  40.  
  41. int mainMenu(void){
  42. Super super = {0};
  43. int ok, ch, opcMp, registros, contarReg=1, cualLeer=1, opcRe;
  44. int tamStructSuper = sizeof(int) + sizeof(char) + (sizeof(char)*11) + sizeof(float) + sizeof(float) + (sizeof(char)*101);
  45.  
  46. FILE *ptrFile;
  47. if(( ptrFile = fopen( "gastos.txt", "ab+" ) ) == NULL){
  48. perror( "\n\n error" );
  49. return 1;
  50. }
  51.  
  52. while( opcMp != 8){
  53. do{
  54. system( "cls" );
  55.  
  56. if( contarReg == 1 ){
  57. contarRegistros( ptrFile, &super, &registros, tamStructSuper );
  58. leer_archivo( ptrFile, &super, registros, cualLeer , tamStructSuper);
  59. contarReg = 0;
  60. cualLeer = 1;
  61. }
  62.  
  63. printf( "\n\n ========== Men%c principal ===========", 163 );
  64.  
  65. printf( "\n\n 1 - Buscar" );
  66. printf( "\n 2 - Agregar" );
  67. printf( "\n 3 - Modificar" );
  68. printf( "\n 4 - Borrar" );
  69. printf( "\n 5 - Consulta" );
  70. printf( "\n 6 - Marcados para borrar" );
  71. printf( "\n 7 - Empaquetar tabla" );
  72. printf( "\n 8 - Finalizar" );
  73.  
  74. printf( "\n\n Ingrese opci%cn.....: ", 162 );
  75. ok = scanf( "%d", &opcMp) == 1 && opcMp >=1 && opcMp <=8;
  76. while ((ch = getchar()) != EOF && ch != '\n');
  77. }while(!ok);
  78.  
  79. switch(opcMp){
  80. case 1 :
  81. if( registros >= 1){
  82. buscar(ptrFile, &super, tamStructSuper, &contarReg, &cualLeer);
  83. }else{
  84. printf( "\n\n No tiene ningun movimiento grabado" );
  85. MENSAJE;
  86. }
  87. break;
  88. case 2 :
  89. rellenar_estructura( ptrFile, &super, &opcRe );
  90. if( opcRe == 1 ){
  91. super.b = '+';
  92. escribir_archivo(ptrFile, &super, tamStructSuper, registros);
  93. contarReg = 1;
  94. }
  95. break;
  96. case 3 :
  97. break;
  98. case 4 :
  99. break;
  100. case 5 :
  101. consultation( ptrFile, &super, tamStructSuper );
  102. contarReg = 1;
  103. break;
  104. case 6 :
  105. break;
  106. case 7 :
  107. break;
  108. }
  109. }
  110.  
  111. fclose( ptrFile );
  112. return 0;
  113. }
  114.  
  115. void contarRegistros( FILE *ptrFile, Super *super, int *registros, int tamStructSuper ){
  116. fseek( ptrFile, 0, SEEK_END );
  117. *registros =  ftell( ptrFile ) / tamStructSuper;
  118. }
  119.  
  120. void rellenar_estructura(FILE *ptrFile, Super *super, int *opcRe){
  121. int ch, ok;
  122. char *p = NULL;
  123.  
  124. time_t tiempo = time(0);
  125. struct tm *tlocal = localtime(&tiempo);
  126. char fecha[11];
  127. strftime(fecha,11,"%d/%m/%Y", tlocal);
  128.  
  129. printf( "\n ================== Agregar operaci%cn ==================", 162 );
  130.  
  131. do{
  132. printf( "\n\n Ingrese fecha (formato ==> %s..................: ", fecha );
  133. fgets(super->fecha, 11, stdin);
  134. if((p=strchr(super->fecha, '\n'))){
  135. *p='\0';
  136. }
  137. else{
  138. while((ch = getchar()) !='\n' && ch!=EOF);
  139. }
  140. ok = strlen(super->fecha);
  141. if( ok != 10 || super->fecha[2] != '/' || super->fecha[5] != '/'){
  142. ok = 0;
  143. }
  144. }while(ok !=10);
  145.  
  146. do{
  147. printf( "\n Ingrese importe gastado en verduler%ca (0 = sin gasto)..: ", 161 );
  148. ok = scanf( "%f", &super->verduras) == 1 && super->verduras >= 0;
  149. while ((ch = getchar()) != EOF && ch != '\n');
  150. }while(!ok);
  151.  
  152. do{
  153. printf( "\n Ingrese importe gastado en almac%cn (0 = sin gasto).....: ", 130 );
  154. ok = scanf( "%f", &super->almacen) == 1 && super->almacen >= 0;
  155. while ((ch = getchar()) != EOF && ch != '\n');
  156. }while(!ok);
  157.  
  158. printf( "\n Ingrese recordatorio (m%cximo 100 caracteres)...........: ", 160 );
  159. fgets(super->nota, 101, stdin);
  160. if((p=strchr(super->nota, '\n'))){
  161. *p='\0';
  162. }
  163. else{
  164. while((ch = getchar()) !='\n' && ch!=EOF);
  165. }
  166.  
  167. printf( "\n =============== Grabar en base de datos ===============" );
  168. printf( "\n 1 - Graba" );
  169. printf( "\n 2 - Descarta" );
  170. do{
  171. printf( "\n\n Ingrese opci%cn.....: ", 162 );
  172. ok = scanf( "%d", opcRe) == 1 && *opcRe >= 1 && *opcRe <= 2;  
  173. while((ch = getchar()) !='\n' && ch!=EOF);
  174. }while(!ok);
  175. }
  176.  
  177. void escribir_archivo( FILE *ptrFile, Super *super, int tamStructSuper, int registros ){
  178. super->orden = registros + 1;
  179. fseek( ptrFile, 0, SEEK_END );
  180. fwrite( super, tamStructSuper, 1, ptrFile );
  181. }
  182.  
  183. void leer_archivo( FILE *ptrFile, Super *super, int registros, int cualLeer, int tamStructSuper ){
  184. float total = 0.0;
  185. printf( "\n\n =======================================================" );
  186. printf( " \n\n  Fecha        Verduler%ca    Almac%cn     Total", 161, 130 );
  187.  
  188. if(cualLeer == 1){
  189. rewind( ptrFile);
  190. while( fread( super, tamStructSuper, 1, ptrFile ) == 1 ){
  191. if( super->orden == registros){
  192. fread( super, tamStructSuper, 1, ptrFile );
  193. }
  194. }
  195. }
  196. total = super->verduras + super->almacen;
  197. printf( "\n %11s %12.2f %10.2f %9.2f (total movimientos..: %d)", super->fecha,  super->verduras, super->almacen, total, registros );
  198. printf( "\n\n =======================================================" );
  199. }
  200.  
  201. void buscar(FILE *ptrFile, Super *super, int tamStructSuper, int *contarReg, int *cualLeer){
  202. char pBuscar[11], *p = NULL;
  203. int ch, ok, opcion;
  204.  
  205. do{
  206. printf( "\n\n Ingrese fecha a buscar (formato ==> 11/04/2015)....: " );
  207. fgets(pBuscar, 11, stdin);
  208. if((p=strchr(pBuscar, '\n'))){
  209. *p='\0';
  210. }
  211. else{
  212. while((ch = getchar()) !='\n' && ch!=EOF);
  213. }
  214. ok = strlen(pBuscar);
  215. if( ok != 10 || pBuscar[2] != '/' || pBuscar[5] != '/'){
  216. ok = 0;
  217. }
  218. }while(!ok);
  219.  
  220. ok=0;
  221. rewind( ptrFile);
  222. while( fread( super, tamStructSuper, 1, ptrFile ) == 1 ){
  223. if( strstr(pBuscar, super->fecha) != NULL){
  224. ok++;
  225. opcion = resBusqueda( super );
  226. if( opcion == 1 ){
  227. *contarReg = 1;
  228. *cualLeer = 2;
  229. }
  230. else if( opcion == 3 ){
  231. *contarReg = 1;
  232. *cualLeer = 1;
  233. }
  234. break;
  235. }
  236. }
  237. if( ok == 0){
  238. printf( "\n\n No existe..." );
  239. MENSAJE;
  240. }
  241. }
  242.  
  243. int resBusqueda( Super *super ){
  244. float totalBus;
  245. int opcionEnc, ch, ok;
  246.  
  247. printf( "\n\n =======================================================" );
  248. printf( " \n\n  Fecha        Verduler%ca    Almac%cn     Total", 161, 130 );
  249.  
  250. totalBus = super->verduras + super->almacen;
  251. printf( "\n %11s %12.2f %10.2f %9.2f", super->fecha,  super->verduras, super->almacen, totalBus);
  252.  
  253. do{
  254. printf( "\n\n ===== Opciones de lo encontrado =====" );
  255. printf( "\n\n  1 - Encontrado" );
  256. printf( "\n  2 - Continuar..." );
  257. printf( "\n  3 - Finalizar" );
  258. printf( "\n\n Ingrese opci%cn.....: ", 162 );
  259. ok = scanf( "%d", &opcionEnc) == 1 && opcionEnc >= 1 && opcionEnc <= 3;
  260. while ((ch = getchar()) != EOF && ch != '\n');
  261. }while(!ok);
  262.  
  263. return opcionEnc;
  264. }
  265.  
  266. void consultation(FILE *ptrFile, Super *super, int tamStructSuper){
  267. Fecha inicio;
  268. Fecha final;
  269. Fecha consulta;
  270. int ok, vFecha, ch, totalDias=0;
  271. float totalVer = 0.00, totalAlm = 0.00, subTotal = 0.00, totalCon = 0.00;
  272.  
  273. printf( "\n\n Ingrese INICIO de la consulta (formato ==> 11/04/2015)....: " );
  274. scanf("%d/%d/%d", &inicio.dia, &inicio.mes, &inicio.año);
  275. while ((ch = getchar()) != EOF && ch != '\n');
  276.  
  277. printf( "\n\n Ingrese FINAL de la consulta (formato ==> 11/04/2015).....: " );
  278. scanf("%d/%d/%d", &final.dia, &final.mes, &final.año);
  279. while ((ch = getchar()) != EOF && ch != '\n');
  280.  
  281. printf( "\n\n =======================================================" );
  282. printf( " \n\n Fecha        Verduler%ca    Almac%cn     Total", 161, 130 );
  283.  
  284. ok=0;
  285. rewind( ptrFile);
  286. while( fread( super, tamStructSuper, 1, ptrFile ) == 1 ){
  287. sscanf( super->fecha, "%d/%d/%d", &consulta.dia, &consulta.mes, &consulta.año );
  288. vFecha = validarFechas( inicio , final, consulta );
  289. if( vFecha == 1 ){
  290. ok++;
  291. totalVer += super->verduras;
  292. totalAlm += super->almacen;
  293. subTotal = super->almacen + super->verduras;
  294. totalCon += subTotal;
  295. printf( "\n%11s %12.2f %10.2f %9.2f", super->fecha,  super->verduras, super->almacen, subTotal);
  296. }
  297. }
  298. if( ok > 0 ){
  299. feDiDi( inicio, final, &totalDias );
  300. printf( "\n\n Totales %15.2f%11.2f%10.2f", totalVer, totalAlm, totalCon);
  301. }else{
  302. printf( "\n\n No  hay movimientos..." );
  303. }
  304. MENSAJE;
  305. }
  306.  
  307. int validarFechas(  Fecha inicio, Fecha final, Fecha consulta ){
  308. unsigned long _inicio = (inicio.año * 365) + (inicio.mes * 28) + inicio.dia;
  309. unsigned long fin = (final.año * 365) + (final.mes * 28) + final.dia;
  310. unsigned long fecha = (consulta.año * 365) + (consulta.mes * 28) + consulta.dia;
  311.  
  312. if( fecha >= _inicio && fecha <= fin ){
  313.        return 1;
  314.    }else{
  315.        return 0;
  316.    }
  317. }


Código
  1. int numeroBisiestos( int año );
  2.  
  3. void feDiDi( Fecha inicio, Fecha final, int *totalDias ){
  4. int totalDiasAnio[] = {00,31,59,90,120,151,181,212,243,273,304,334,365};
  5. int difAnio=0, i;
  6.  
  7. difAnio = final.año - inicio.año;
  8.  
  9. if( difAnio == 0){
  10. *totalDias += (totalDiasAnio[final.mes-1] + final.dia) - (totalDiasAnio[inicio.mes-1] + inicio.dia);
  11. if( inicio.mes <= 2 && final.mes > 2) {*totalDias += numeroBisiestos(inicio.año);}
  12. }
  13. else{
  14. *totalDias += 365 - (totalDiasAnio[inicio.mes-1] + inicio.dia);
  15. if( inicio.mes < 3) {*totalDias += numeroBisiestos(inicio.año);}
  16.  
  17. for( i= inicio.año +1; i< final.año; i++ ){
  18. *totalDias += 365 + numeroBisiestos(i);
  19. }
  20.  
  21. *totalDias += totalDiasAnio[final.mes-1] + final.dia;
  22. if( final.mes > 2) {*totalDias += numeroBisiestos(final.año);}
  23. }
  24. }
  25.  
  26. int numeroBisiestos( int año ){
  27. if((año %4 == 0 && año%100 != 0) || (año%400) == 0){return 1;}
  28. else{return 0;}
  29. }
Es todo y espero como siempre de vuestra ayuda.-

Saludos.
Daniel   
23  Programación / Programación C/C++ / Re: fechas guardadas en variables char validar ">=, <=" en: 22 Abril 2015, 20:35 pm
Hola.
Al fin encontré la solución y puedo continuar sin pérdidas de tiempo, no pongo el código porque lo encontré en otro foro y desconozco si se puede, sería interesante volcarlo aquí porque es muy conciso, unas pocas líneas, aclaro que lo digo para los que estamos estudiando porque todos los expertos de este foro seguramente lo conocen, de echo los autores son rir3760 y vangodp.- ;-) ;-) ;-)     
   
Saludos.
Daniel
24  Programación / Programación C/C++ / Re: fechas guardadas en variables char validar ">=, <=" en: 22 Abril 2015, 18:29 pm
Hola.
Tienes toda la razón, lo que pasa es que cuando uno está estudiando por querer reinventar la rueda o por desconocimiento cometemos esos errores.
Estoy haciendo la función para validar las fechas para la consulta, como hasta el momento tengo muchos if ni bien funcione la voy a exponer para que me digas (si lo deseas) como puedo optimizarla.-
   
Saludos.
Daniel
25  Programación / Programación C/C++ / Re: fechas guardadas en variables char validar ">=, <=" en: 21 Abril 2015, 22:47 pm
Hola ivancea96.
Gracias por ocuparte, lo que me propones es interesante sólo que antes lo voy a intentar de esta manera y veré que resulta.-

a = 30/01/2015 
b = 01/02/2015

Ahora mismo tengo un barullo respetable para validar por ej. a[9] con b[9] cuando llegue a a[6] y b[6] sabré si el año es igual o distinto y luego continuar con el mes y si es igual continuar con el día.-
     
Saludos.
Daniel
26  Programación / Programación C/C++ / fechas guardadas en variables char validar ">=, <=" en: 21 Abril 2015, 18:25 pm
Hola a todos.
¿Hay otra manera más práctica para hacer esto?, lo que se me antoja es separar día, mes y año castearlo a int y luego compararlas una a una.-
Dejo la función por si desean hacerme alguna observación.-

Código
  1. void consultation(FILE *ptrFile, Super *super, int tamStructSuper){
  2. char fechaIni[11], fechaFin[11], *p = NULL;
  3. int ch, ok;
  4. float totalPar = 0.0, totalCon = 0.0;
  5.  
  6. do{
  7. printf( "\n\n Ingrese INICIO de la consulta (formato ==> 11/04/2015)....: " );
  8. fgets(fechaIni, 11, stdin);
  9. if((p=strchr(fechaIni, '\n'))){
  10. *p='\0';
  11. }
  12. else{
  13. while((ch = getchar()) !='\n' && ch!=EOF);
  14. }
  15. ok = strlen(fechaIni);
  16. if( ok != 10 || fechaIni[2] != '/' || fechaIni[5] != '/'){
  17. ok = 0;
  18. }
  19. }while(!ok);
  20.  
  21. do{
  22. printf( "\n\n Ingrese FINAL de la consulta (formato ==> 11/04/2015).....: " );
  23. fgets(fechaFin, 11, stdin);
  24. if((p=strchr(fechaFin, '\n'))){
  25. *p='\0';
  26. }
  27. else{
  28. while((ch = getchar()) !='\n' && ch!=EOF);
  29. }
  30. ok = strlen(fechaFin);
  31. if( ok != 10 || fechaFin[2] != '/' || fechaFin[5] != '/'){
  32. ok = 0;
  33. }
  34. }while(!ok);
  35.  
  36. printf( "\n\n =======================================================" );
  37. printf( " \n\n Fecha        Verduler%ca    Almac%cn     Total", 161, 130 );
  38.  
  39. ok=0;
  40. rewind( ptrFile);
  41. while( fread( super, tamStructSuper, 1, ptrFile ) == 1 ){
  42. if( super->fecha >= fechaIni && super->fecha <= fechaFin ){
  43. ok++;
  44. totalPar = super->verduras + super->almacen;
  45. totalCon += totalPar;  
  46. printf( "\n%11s %12.2f %10.2f %9.2f", super->fecha,  super->verduras, super->almacen, totalPar);
  47. }
  48. }
  49. if( ok > 0 ){
  50. printf( "\n\n Total de la consulta.................$ %.2f", totalCon );
  51. }else{
  52. printf( "\n\n No  hay movimientos entre el %s al %s", fechaIni, fechaFin );
  53. }
  54. MENSAJE;
  55.  
  56. }
  57.  
Saludos.
Daniel
27  Programación / Programación C/C++ / Evacuar dudas sobre punteros en lenguaje C. en: 15 Marzo 2015, 18:36 pm
Hola a todos.
Tengo unas cuantas dudas sobre punteros y voy a usar este espacio para evacuarlas todas juntas (de a una) espero con esto no infringir las reglas del foro, me faltan unos temas para terminar el libro y tal vez haya una diferencia de meses entre la primera y la última consulta, en este caso como empecé a estudiar inglés (de forma autodidacta como siempre) estoy haciendo un programita para aprender las 1000 palabras más usadas en inglés, como comprenderán no puedo poner todo en el main y cuando pase la estructura, el archivo, etc. A las funciones seguramente o no me correrá el programa y si logro que todo funcione seguramente me surgirán alguna duda como la que expongo a continuación.-



NOTA: Veria con mucho agrado que alguien que tenga alguna duda sobre punteros las expusiera aquí.-

Un abrazo y gracias como siempre.
Daniel
28  Programación / Programación C/C++ / Re: Grabar estructura en archivo [lenguaje C] [Windows 7] en: 14 Marzo 2015, 04:00 am
Hola rir3760.
Ahora si funciona correctamente, sólo que la primer parte quedo de esta manera (lo copié de este foro).-

Código
  1. ......................
  2. ......................
  3. long tam;
  4. ......................
  5. ......................
  6. tam=sizeof(struct registro);
  7. fseek(ptrEst, 0, SEEK_END);
  8. ultimaMatricula=ftell(ptrEst)/tam;
  9. est.matricula = ultimaMatricula+1;
  10.  
  11. printf( "\n Matricula......: %d",  est.matricula);
  12.  
Sólo una cosita más, me podrías decir el significado de == 1, debo interpretar que si es cero termina el bucle, no se.-

Saludos.
Daniel
29  Programación / Programación C/C++ / Re: Grabar estructura en archivo [lenguaje C] [Windows 7] en: 14 Marzo 2015, 02:27 am
Hola.
No me funciona ninguno de los 2 códigos, si los utilizo, el primero no me deja agregar registros, pero no desesperemos, teniendo las funciones correctas (que seguramente lo son) voy a buscar en la web para hacer que funcione.-

Saludos.
Daniel   
30  Programación / Programación C/C++ / Re: Grabar estructura en archivo [lenguaje C] [Windows 7] en: 13 Marzo 2015, 20:55 pm
Hola BloodSharp.
Muchas gracias por el código.-
Te explico, como por el momento me resultaba muy difícil entender tú código y para no molestarte tanto me puse a buscar nuevamente en internet y encontré más de un video que ponían ejemplos con estructuras con campos de diferentes tipos, pude implementarlos y funcionan a la perfección, evidentemente el programa que puse es un poco largo y no supe explicarme lo suficiente.-
Bueno retomando el nuevo código les pido una manito para solucionar 2 cositas que me quedan pendiente:
La  primera es ¿Cómo puedo hacer para imprimir el último dato ingresado? Es que quiero ingresar "matricula" en orden, o sea 1,2,3,4,5,6,7… para ello necesito ver en pantalla el último ingreso, obviamente sería interesante que este campo sea de sólo lectura y que se rellenara sólo con la última matricula + 1, pero bueno para mis conocimiento sobre archivos en C con que me muestre en pantalla el último es suficiente.-
Lo último es un inconveniente con el bucle while, siempre me duplica el último dato.-
Esta vez parece todo más sencillo y fácil de entender.-       

Código
  1. #include <stdio.h>
  2.  
  3. struct registro{
  4. char nombre[30];
  5. int matricula;
  6. }est;
  7.  
  8. int main(void){
  9. FILE *ptrEst;
  10. int ch;
  11.  
  12. if( (ptrEst = fopen( "ingles.txt" , "a+" )) == NULL ){
  13. printf( "\n\n ERROR, no se pudo abrir el archivo..." );
  14. }
  15. else{
  16. // fread(&est, sizeof(est), 1, ptrEst);
  17. // printf( "\n\n Ultimo ingreso....: %d - %s \n", est.matricula, est.nombre );
  18.  
  19. printf( "\n\n Nombre.........:");
  20. gets(est.nombre);
  21.  
  22. printf( "\n Matricula......:" );
  23. scanf( "%d", &est.matricula );
  24. while ((ch = getchar()) != EOF && ch != '\n');
  25.  
  26. fwrite(&est, sizeof(est), 1, ptrEst);
  27.  
  28. rewind(ptrEst);
  29.  
  30. printf( "\n\n Listado completo\n" );
  31. while( !feof(ptrEst) ){
  32. fread(&est, sizeof(est), 1, ptrEst);
  33. printf( " %d - %s \n", est.matricula, est.nombre );
  34. }
  35.  
  36. fclose(ptrEst);
  37. }
  38.  
  39. return 0;
  40. }
  41.  
Gracias ivancea96 por tú ayuda.-
Saludos.
Daniel
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines