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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  dudita con cadena
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: dudita con cadena  (Leído 2,292 veces)
MessageBoxA

Desconectado Desconectado

Mensajes: 229


ayudame a ayudarte


Ver Perfil WWW
dudita con cadena
« en: 10 Agosto 2011, 01:20 am »

buenas  primero el code
Código
  1. #include <windows.h>
  2. #include <time.h>
  3.  
  4. int main()
  5.  
  6. {FreeConsole();
  7.  
  8. time_t t1;
  9. time_t t2;
  10.  
  11. t1 = time(NULL);
  12.  
  13. int i=0;
  14.  
  15. while(i<=5)
  16.  
  17. {
  18.  
  19. MessageBox(NULL,TEXT("click aqui"),TEXT(""),MB_OK );
  20. i++;
  21.    }
  22.  
  23.    t2 = time(NULL);
  24.  
  25. char segundos[]=" segundos";
  26.  
  27. char cadena[15];
  28. //de aqui en adelante tengo el rollo mi idea es tomar el resultado de difftime y
  29. //guardarlo en una cadena para luego concatenarla con la cadena "segundos"
  30. //y asi pasarla como parametro a el messagebox de mas adelante
  31. cadena=(char)difftime(t2,t1);
  32.  
  33. strcpy(cadena, segundos);
  34.  
  35. MessageBox(NULL,cadena,TEXT("felicidades duraste"),MB_OK);
  36.  
  37.    return EXIT_SUCCESS;
  38. }
  39.  

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


En línea

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

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: dudita con cadena
« Respuesta #1 en: 10 Agosto 2011, 18:37 pm »

Código:
#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.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: dudita con cadena
« Respuesta #2 en: 19 Agosto 2011, 05:39 am »

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:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <windows.h>
  5.  
  6. int main(void)
  7. {
  8.   char mensaje[100 /* Por decir algo*/];
  9.   time_t a;
  10.   time_t b;
  11.   int i;
  12.  
  13.   time(&a);
  14.  
  15.   for (i = 0; i < 3; i++)
  16.      MessageBox(NULL, "Click aqui", "", MB_OK);
  17.  
  18.   time(&b);
  19.   sprintf(mensaje, "%d segundos", (int) difftime(b, a));
  20.   MessageBox(NULL, mensaje, "Felicidades duraste", MB_OK);
  21.  
  22.   return EXIT_SUCCESS;
  23. }

Y un ejemplo sencillo de la segunda (C estándar) es:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define LONG_CADENA 128
  6.  
  7. int main(void)
  8. {
  9.   time_t t1;
  10.   struct tm *t2;
  11.   char cadena[LONG_CADENA];
  12.  
  13.   /* 1) Obtener la fecha actual ('time_t') */
  14.   if ((t1 = time(NULL)) == (time_t) -1)
  15.      return EXIT_FAILURE;
  16.  
  17.   /* 2) Obtener la fecha actual ('struct tm *') */
  18.   t2 = localtime(&t1);
  19.  
  20.   /* Imprimir la fecha "manualmente" mediante printf */
  21.   printf("%d/", t2->tm_year + 1900);
  22.   printf("%02d/", t2->tm_mon + 1);
  23.   printf("%02d\n", t2->tm_mday);
  24.  
  25.   /* Construir la fecha mediante strftime */
  26.   strftime(cadena, LONG_CADENA, "%Y/%m/%d", t2);
  27.   printf("%s\n", cadena);
  28.  
  29.   return EXIT_SUCCESS;
  30. }

Un saludo
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una dudita!!
.NET (C#, VB.NET, ASP)
Hole_System 0 2,087 Último mensaje 24 Diciembre 2008, 01:47 am
por Hole_System
Dudita en PHP
PHP
& eDu & 2 2,156 Último mensaje 15 Febrero 2009, 19:50 pm
por & eDu &
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines