dudita con cadena

Iniciado por MessageBoxA, 10 Agosto 2011, 01:20 AM

0 Miembros y 1 Visitante están viendo este tema.

MessageBoxA

buenas  primero el code
Código (cpp) [Seleccionar]

#include <windows.h>
#include <time.h>

int main()

{FreeConsole();

time_t t1;
time_t t2;

t1 = time(NULL);

int i=0;

while(i<=5)

{
   
MessageBox(NULL,TEXT("click aqui"),TEXT(""),MB_OK );
i++;
    }

    t2 = time(NULL);
   
char segundos[]=" segundos";

char cadena[15];
//de aqui en adelante tengo el rollo mi idea es tomar el resultado de difftime y
//guardarlo en una cadena para luego concatenarla con la cadena "segundos"
//y asi pasarla como parametro a el messagebox de mas adelante
cadena=(char)difftime(t2,t1);

strcpy(cadena, segundos);

MessageBox(NULL,cadena,TEXT("felicidades duraste"),MB_OK);
   
    return EXIT_SUCCESS;
}


luego de solucionar este problema de manejo de cadenas pienso colocarle el code para hacer q las ventanas de messagebox aparezcan en lugares aleatorios de la pantalla (eso ya lo se hacer)

NOTA: SOLUCIONENME ESE PROBLEMA DE LA CADENA Q ME CANSE DE DARLE COCO :)

GRACIAS
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++

escabe


#include <windows.h>
#include <time.h>

#pragma hdrstop

#pragma argsused
int main(int argc, char* argv[])
{
   time_t t1;
   time_t t2;

   t1 = time(NULL);

   int i=0;

   while(i<=5){
     MessageBox(NULL,TEXT("click aqui"),TEXT(""),MB_OK );
     i++;
   }

   t2 = time(NULL);

   char segundos[]=" segundos";
   char cadena[15];
   itoa(difftime(t2,t1), cadena, 10);
   strcat(cadena, segundos);

   MessageBox(NULL, cadena, TEXT("felicidades duraste"),MB_OK);

   return EXIT_SUCCESS;
}


Saludos.

rir3760

Una forma ligeramente distinta es utilizando sprintf para generar el mensaje. También puedes revisar la documentación de "strftime" si necesitas imprimir una cadena tomando en consideración el año, mes, etc.

Un ejemplo de la primera forma es:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

int main(void)
{
   char mensaje[100 /* Por decir algo*/];
   time_t a;
   time_t b;
   int i;
   
   time(&a);
   
   for (i = 0; i < 3; i++)
      MessageBox(NULL, "Click aqui", "", MB_OK);

   time(&b);
   sprintf(mensaje, "%d segundos", (int) difftime(b, a));
   MessageBox(NULL, mensaje, "Felicidades duraste", MB_OK);

   return EXIT_SUCCESS;
}


Y un ejemplo sencillo de la segunda (C estándar) es:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define LONG_CADENA 128

int main(void)
{
   time_t t1;
   struct tm *t2;
   char cadena[LONG_CADENA];
   
   /* 1) Obtener la fecha actual ('time_t') */
   if ((t1 = time(NULL)) == (time_t) -1)
      return EXIT_FAILURE;
   
   /* 2) Obtener la fecha actual ('struct tm *') */
   t2 = localtime(&t1);
   
   /* Imprimir la fecha "manualmente" mediante printf */
   printf("%d/", t2->tm_year + 1900);
   printf("%02d/", t2->tm_mon + 1);
   printf("%02d\n", t2->tm_mday);
   
   /* Construir la fecha mediante strftime */
   strftime(cadena, LONG_CADENA, "%Y/%m/%d", t2);
   printf("%s\n", cadena);
   
   return EXIT_SUCCESS;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language