Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Escribir fecha en fichero (turbo c)

Estas en el tema de Escribir fecha en fichero (turbo c) en el foro de C/C++ en Foros del Web. Saludos. Me gustaría que mi programa escribiera la fecha en un fichero, pero no logro conseguirlo. Estaría muy agradecido a quien me echara una mano. ...
  #1 (permalink)  
Antiguo 02/03/2011, 09:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 14
Antigüedad: 13 años, 2 meses
Puntos: 0
Exclamación Escribir fecha en fichero (turbo c)

Saludos. Me gustaría que mi programa escribiera la fecha en un fichero, pero no logro conseguirlo. Estaría muy agradecido a quien me echara una mano.
Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <dos.h>
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <time.h>
  7.  
  8.  void main(void){
  9.    FILE *puntero_file;
  10.    char var[100], cadena[100], fichero[9]="file1.txt";
  11.  
  12.  
  13.    int i,k,cont0=0,cont1=0,mat[100],max0=0,max1=0,temp0=0,temp1=0,n,result0=0,result1=0;
  14.    int unsigned c;
  15.  
  16.    int tecla=kbhit();
  17.    delay(100);
  18.    randomize();
  19.    clrscr();
  20.  
  21.  
  22.     gotoxy(1,1);printf("La M*quina que detecta anomalias. >> v 0.1 <<\n\n");
  23.  
  24.     fflush(stdin);
  25.     while (!kbhit()){
  26.      fflush(stdin);
  27.      n=rand()%2;
  28.  
  29.  
  30.      if (n==1){
  31.  
  32.         cont1++;
  33.         result1=cont1;
  34.         cont0=0;
  35.  
  36.      }
  37.  
  38.  
  39.      if (n==0){
  40.         cont0++;
  41.         result0=cont0;
  42.         cont1=0;
  43.  
  44.  
  45.      }
  46.          delay(100);
  47.          gotoxy(25,40);printf ("\n\n         \n\n");
  48.         max0=result0;
  49.         max1=result1;
  50.         if ((max0>7) || (max1>8)){
  51.          time_t timer;
  52.          struct tm *tblock;
  53.  
  54.         /* coge la fecha del dia */
  55.         timer = time(NULL);
  56.  
  57.         /* convierte fecha/hora a estructura */
  58.         tblock = localtime(&timer);
  59.  
  60.         /* convierte fecha/hora a cadena de texto */
  61.         strcpy(var, asctime(tblock));
  62.         puntero_file=fopen(fichero,"w+");
  63.         for(c=0;c<=strlen(cadena)-1;c++){
  64.              putc(cadena[c],puntero_file);
  65.              printf("%c >> Caracter insertado en %s n",cadena[c],fichero);
  66.          }
  67.         fclose(puntero_file);
  68.  
  69.         gotoxy(24,40);printf("Anomalia: %s", var);
  70.           delay(2000);
  71.  
  72.         }
  73.  
  74.       gotoxy(5,5);printf("numero generado: %d\n", n);
  75.       gotoxy(6,7);printf("max 0: %d  ", max0);
  76.       gotoxy(6,8);printf("max 1: %d  ", max1);
  77.       max0=0;
  78.       max1=0;
  79.    }
  80.   }

pd: el problema es en la línea 64, que no hace lo que quiero, y no se si lo que quiero que haga se hace así.

¿Me pueden ayudar? Gracias de antemano
  #2 (permalink)  
Antiguo 02/03/2011, 09:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 14
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Escribir fecha en fichero (turbo c)

El primer error de pato que he visto está en la línea 61
Código C:
Ver original
  1. strcpy(var, asctime(tblock));

Debería ser
Código C:
Ver original
  1. strcpy(cadena, asctime(tblock));

De todas formas he creado el fichero "file1.txt" manualmente, pero no llega nada.

Última edición por JoseAntonioEscribano; 02/03/2011 a las 10:19
  #3 (permalink)  
Antiguo 02/03/2011, 13:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 14
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Escribir fecha en fichero (turbo c)

SOLUCIONADO.

Modificación a partir de la línea 62
Código C:
Ver original
  1. fichero=fopen("file1.txt","a+");
  2.             fwrite(var,strlen(var),1,fichero);
  3.         fclose(fichero);

Etiquetas: escribir, fichero, turbo, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:16.