Hilo
la eñe en programas de consola (jmicanovelles) 2004-05-28 01:43:23
No se si a todos os ocurre lo mismo, pero al introducir literales en algun
programa de consola, aparece otro signo. Un día hice un comentario al enviar
alguno de los ejercicios a c.conclase.net y Salvador me dijo que no ocurría
nada raro con la eñe, pero a mi si me ocurre, al compilar el programa. Si
declaro una variable con el código ascii 164, creo que es, entonces si me
aparece.
Cuando uso el API, entonces si aparece.
Ah! Un dia pregunté como mover un bitmap con el ratón, usando el API
, pues ese bitmap ya anda moviendose por ahí, aunqué ya comprendo que la
pregunta era como: hazme un programa por favor. Gracias a los que me
enviaron alguna respuesta, todas fueron de ayuda.
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
desplegar el tiempo (None) 2004-05-28 03:44:05
saludos a todos,
estoy haciendo un programa sobre una calculadora en modo grafico,
ya tengo los botones y las conversiones de:
decimal-> binario
decimal-> hexadecimal
binario-> decimal
hexadecimal-> decimal
binario-> hexadecimal
hexadecimal-> binario
pero tambien tengo que agregar la hora en la pantalla,
a razon de mostrar la hora, minutos y segundos, en tiempo real
ó sea que cambie la hora asi como es, me explico?
asi como la hora que se muestra en la barra de linux,
ya tengo la funcion para que me muestre la hora local,
con un ejemplo que esta en "librerias ansi C" (de C con Clase)
solo lo modifique para el proposito que quiero,
pero como le hago para que me funcione asi como lo describi arriba?
saludos
José de Paz
Escuintla, Guatemala
Tel. 507-2361
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Re: la eñe en programas de consola (Salvador Pozo) 2004-05-28 04:58:14
Estimado jmicanovelles,
Con fecha jueves, 27 de mayo de 2004, 20:43:15, escribió:
Hola:
j> No se si a todos os ocurre lo mismo, pero al introducir literales
j> en algun programa de consola, aparece otro signo. Un día hice un
j> comentario al enviar alguno de los ejercicios a c.conclase.net y
j> Salvador me dijo que no ocurría nada raro con la eñe, pero a mi si
j> me ocurre, al compilar el programa.
Creo que no entendí tu pregunta correctamente. Me preguntabas en ese
mensaje que "qué pasaba con los acentos", y yo entendí que era al leer
los datos, no al mostrar los mensajes en pantalla. Siento el
malentendido.
Efectivamente, cuando se programa en Windows para consola, los
acentos, y las eñes, no salen correctamente. Esto es porque la consola
usa un juego de caracteres diferente que el resto de Windows (ignoro
el motivo, y si se puede configurar de otro modo, todos mis intentos
en ese sentido han fracasado).
Hay dos posibilidades para solucionar esto:
1) Usar un editor de consola para editar el fichero fuente. (Como el
EDIT de MS-DOS).
2) Usar funciones del API para "traducir" las cadenas con acentos al
conjunto de caracteres de consola:
Hay que recordar que los programas de consola siguen siendo programas
Windows, y por lo tanto pueden acceder al API. Windows usa un juego de
caracteres por defecto para la consola de 8 bits, los primeros, del 32
al 127 son siempre los mismos: el código ASCII de 7 bits. El resto
depende de la página de códigos que esté activada, por defecto se
activa una que no dispone de caracteres acentuados ni ñ.
Podríamos usar un juego de caracteres de 16 bits, pero no es
necesario, bastará con usar una función del API para conversión de
cadenas entre el código ANSI y el OEM: CharToOem
Veamos un ejemplo:
----8<------
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
char cad[25];
cout << "áéíóú" << endl;
CharToOem("áéíóú", cad);
cout << cad << endl;
cin.get();
return 0;
}
----8<------
Por supuesto, esto nos obliga a almacenar en variables todas las
cadenas de nuestro programa y a convertirlas antes de usarlas, pero
nos asegura que siempre obtendremos el mismo resultado.
j> Si declaro una variable con el código ascii 164, creo que es,
j> entonces si me aparece.
Es otra opción, pero de momento no dispongo de soluciones generales.
j> Cuando uso el API, entonces si aparece.
En ese caso, tanto el editor de Dev-C++ como el programa que creas son
aplicaciones GUI, y por lo tanto, usan el mismo conjunto de
caracteres.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Una duda con apuntadores... (Daniel) 2004-05-28 06:19:11
Hola a todos:
Casi que no escribo a la lista porque me la paso estudiando todos los mensajes
que se envían aquí. Sigo pensando que esta ha sido la mejor lista de C++ que he
podido encontrar.
Necesito que me digan cómo es que funciona un apuntador y la manera correcta de
"leerlo". Veamos un ejemplo:
Asignatura* totalDeAsignaturas;
Asignatura* asignaturasAsignadas;
..es así como se pone un apuntador? o es de esta otra manera:
Asignatura *totalDeAsignaturas;
Asignatura *asignaturasAsignadas;
..la verda que me parece que lo he visto de las dos maneras. Por favor,
¿alguien podría explicarme como es?
Gracias...
Reitero los saludos...
Daniel...
----------------------------------------------------------------
INFOSOL Webmail
http://webmail.gtm.sld.cu/imp/
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Re: Una duda con apuntadores... (Lianita) 2004-05-28 06:40:41
hola daniel, puede ser de las dos maneras, como tu elijas, bueno necesito que me ayudes tu ahora, quiero quitarme de la lista, no porque no sea buena, esque no tengo tiempo alguno de mirar nada, siempre estoy en clases, y no puedo ver nada, y entonces se me llena el buzón sin poder ver las dudas, ayudame por favor
muchas gracias y spero haberte servido de algo
liane
"Lic. Daniel Alfredo Betancourt Reboso" <dabet@infosol.gtm.sld.cu> wrote:
Hola a todos:
Casi que no escribo a la lista porque me la paso estudiando todos los mensajes
que se envían aquí. Sigo pensando que esta ha sido la mejor lista de C++ que he
podido encontrar.
Necesito que me digan cómo es que funciona un apuntador y la manera correcta de
"leerlo". Veamos un ejemplo:
Asignatura* totalDeAsignaturas;
Asignatura* asignaturasAsignadas;
..es así como se pone un apuntador? o es de esta otra manera:
Asignatura *totalDeAsignaturas;
Asignatura *asignaturasAsignadas;
..la verda que me parece que lo he visto de las dos maneras. Por favor,
¿alguien podría explicarme como es?
Gracias...
Reitero los saludos...
Daniel...
----------------------------------------------------------------
INFOSOL Webmail
http://webmail.gtm.sld.cu/imp/
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
---------------------------------
Correo Yahoo!: 6MB, más protección contra el spam ¡gratis!
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Re: Una duda con apuntadores... (Daniel) 2004-05-28 06:50:02
En el ejemplo que puse ¿quién es el que apunta a quién?
Perdonadme, pero es que estoy aprendiendo aún.
Saludos....
Daniel....
Mensaje citado por Lianita <liane_figueroa@yahoo.es>:
> hola daniel, puede ser de las dos maneras, como tu elijas,
> muchas gracias y spero haberte servido de algo
> liane
>
> "Lic. Daniel Alfredo Betancourt Reboso" <dabet@infosol.gtm.sld.cu> wrote:
> Hola a todos:
> Casi que no escribo a la lista porque me la paso estudiando todos los
> mensajes
> que se envían aquí. Sigo pensando que esta ha sido la mejor lista de C++ que
> he
> podido encontrar.
>
> Necesito que me digan cómo es que funciona un apuntador y la manera correcta
> de
> "leerlo". Veamos un ejemplo:
>
> Asignatura* totalDeAsignaturas;
> Asignatura* asignaturasAsignadas;
>
> .es así como se pone un apuntador? o es de esta otra manera:
>
> Asignatura *totalDeAsignaturas;
> Asignatura *asignaturasAsignadas;
>
> ..la verda que me parece que lo he visto de las dos maneras. Por favor,
> ¿alguien podría explicarme como es?
>
> Gracias...
> Reitero los saludos...
>
> Daniel...
>
>
>
> ----------------------------------------------------------------
> INFOSOL Webmail
> http://webmail.gtm.sld.cu/imp/
>
>
>
>
>
> If you want to share pictures, use the calendar, or start a questionnaire
> visit http://www.es.smartgroups.com/groups/c-con-clase
>
> To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
>
> ---------------------------------
> Correo Yahoo!: 6MB, más protección contra el spam ¡gratis!
>
>
>
>
> If you want to share pictures, use the calendar, or start a questionnaire
> visit http://www.es.smartgroups.com/groups/c-con-clase
>
> To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
>
----------------------------------------------------------------
INFOSOL Webmail
http://webmail.gtm.sld.cu/imp/
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Re: Abandonar la lista ... Era: Una duda con apuntadores... (Steven) 2004-05-28 06:57:20
Hola Liane,
Lianita wrote:
> hola daniel, puede ser de las dos maneras, como tu elijas, bueno
> necesito que me ayudes tu ahora, quiero quitarme de la lista, no
> porque no sea buena, esque no tengo tiempo alguno de mirar nada,
> siempre estoy en clases, y no puedo ver nada, y entonces se me llena
> el buzón sin poder ver las dudas, ayudame por favor
> muchas gracias y spero haberte servido de algo
> liane
>
Si el problema que tienes es que se te llena el buzón, entonces puedes
configurar Smartgroups para el envío de mensajes. Existen 3 opciones:
- "Immediately". Envía los mensajes en cuanto lleguen al servidor a tu
dirección de correo-e. Esta opción está habilitada por defecto.
- "Daily Digest". Al final del día, el servidor te envía un resumen de
los mensajes enviados del día.
- "No Mail". No envía mensajes por correo-e, por lo que deberás entrar
en la página de Smartgroups para mirar los mensajes enviados. Esto
aparenta el comportamiento de un foro directamente en el servidor.
Para esto, entra en la página de Smartgroups en:
http://www.smartgroups.com/ Deberás usar tu nonmbre y contraseña. Entra
en el grupo de "Con Clase". Bajo el submenú "Group", elige "Your
Settings". En la página central, cambia la selección de "Immediately" a
"No Email". Pulsa el botón "Update".
Si ya no te interesa seguir en esta lista, entonces la forma más
sencilla para darse de baja es enviando un correo-e en blanco a:
c-con-clase-unsubscribe@smartgroups.com
Siento que hayas decidido dejarnos, pero cuando quieras, puedes volver a
suscribirte.
Steven
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Re: Una duda con apuntadores... (Steven) 2004-05-28 06:48:15
Hola Daniel,
Lic. Daniel Alfredo Betancourt Reboso wrote:
> Hola a todos:
> Casi que no escribo a la lista porque me la paso estudiando todos los
> mensajes que se envían aquí. Sigo pensando que esta ha sido la mejor
> lista de C++ que he podido encontrar.
>
Nos alegra saber que te gusta la lista y el mundo de la programación en C++.
> Necesito que me digan cómo es que funciona un apuntador y la manera
> correcta de "leerlo". Veamos un ejemplo:
>
> Asignatura* totalDeAsignaturas;
> Asignatura* asignaturasAsignadas;
>
> ..es así como se pone un apuntador? o es de esta otra manera:
>
> Asignatura *totalDeAsignaturas;
> Asignatura *asignaturasAsignadas;
>
> ..la verda que me parece que lo he visto de las dos maneras. Por favor,
> ¿alguien podría explicarme como es?
>
Ambas formas son correctas, incluso puedes escribirlo como:
Asignatura * totalDeAsignaturas;
Asignatura * asignaturasAsignadas;
Ambas dclaraciones crean una variable que es un puntero a un valor de
tipo 'Asignatura'. Recuerda que un puntero o apuntador guarda un valor
que es una dirección de memoria. Por lo tanto, el puntero no contiene
datos de tipo 'Asignatura', sino solamente una dirección de memoria
donde se puede encontrar tal dato.
Podemos usar memoria dinámica para crear la memoria de tipo
'Asignatura'. Por ejemplo,
totalDeAsignaturas = new Asignaturas;
asignaturasAsignadas = new Asignaturas;
Supongamos que la estructura 'Asignatura' se define como:
struct Asignatura
{
char szNombre[128];
char szProfesor[256];
int nEstudiantes;
};
Ahora podemos guardar valores en la memoria creada anteriormente. Por
ejemplo,
strcpy( totalDeAsignaturas-> szNombre, "Matemáticas" );
strcpy( totalDeAsignaturas-> szNombre, "A. Bermejo" );
totalDeAsignaturas-> nEstudiante = 237;
strcpy( asignaturasAsginadas-> szNombre, "Física" );
Veamos lo que pasa en memoria:
Dirección
de Memoria Tipo Nombre Valor
------------------------------------------------------------
0x0044CC00 Asignatura * totalDeAsignaturas 0xAA55DD00
0x0044CC00 Asignatura * asignaturasAsginadas 0xEE661100
...
0xAA55DD00 char szNombre 'M' (Asignatura)
0xAA55DD01 char ---- 'a'
0xAA55DD02 char ---- 't'
0xAA55DD03 char ---- 'e'
0xAA55DD04 char ---- 'm'
0xAA55DD05 char ---- 'á'
0xAA55DD06 char ---- 't'
0xAA55DD07 char ---- 'i'
0xAA55DD08 char ---- 'c'
0xAA55DD09 char ---- 'a'
0xAA55DD0A char ---- 's'
0xAA55DD0B char ---- '\0'
....
0xAA55DD80 char szNombre 'A'
0xAA55DD01 char ---- '.'
0xAA55DD02 char ---- ' '
0xAA55DD03 char ---- 'B'
0xAA55DD84 char ---- 'e'
0xAA55DD85 char ---- 'r'
0xAA55DD86 char ---- 'm'
0xAA55DD87 char ---- 'e'
0xAA55DD88 char ---- 'j'
0xAA55DD89 char ---- 'o'
0xAA55DD8A char ---- '\0'
...
0xAA55DE80 int nEstudiantes 0x000000ED
...
0xEE661100 char szNombre 'F' (Asignatura)
0xEE661101 char ---- 'í'
0xEE661102 char ---- 's'
0xEE661103 char ---- 'i'
0xEE661104 char ---- 'c'
0xEE661105 char ---- 'a'
0xEE661106 char ---- '\0'
....
Como puedes ver, los punteros contienen las direcciones de memoria donde
están los valores.
Espero que haya aclarado la duda.
Steven
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com
Una duda con apuntadores...(¡Gracias!) (Daniel) 2004-05-28 21:19:38
Gracias Steven:
Tu como siempre, ¡salvandome la vida!. Voy a leer más detenidamente tu
respuesta.
Saludos a todos...
Daniel...
----- Original Message -----
From: "Steven R. Davidson" <vze266ft@verizon.net>
To: <c-con-clase@smartgroups.com>
Sent: Friday, May 28, 2004 1:51 AM
Subject: Re: [C-con-Clase] Una duda con apuntadores...
> Hola Daniel,
>
> Lic. Daniel Alfredo Betancourt Reboso wrote:
> > Hola a todos:
> > Casi que no escribo a la lista porque me la paso estudiando todos los
> > mensajes que se envían aquí. Sigo pensando que esta ha sido la mejor
> > lista de C++ que he podido encontrar.
> >
>
> Nos alegra saber que te gusta la lista y el mundo de la programación en
C++.
>
> > Necesito que me digan cómo es que funciona un apuntador y la manera
> > correcta de "leerlo". Veamos un ejemplo:
> >
> > Asignatura* totalDeAsignaturas;
> > Asignatura* asignaturasAsignadas;
> >
> > ..es así como se pone un apuntador? o es de esta otra manera:
> >
> > Asignatura *totalDeAsignaturas;
> > Asignatura *asignaturasAsignadas;
> >
> > ..la verda que me parece que lo he visto de las dos maneras. Por favor,
> > ¿alguien podría explicarme como es?
> >
>
> Ambas formas son correctas, incluso puedes escribirlo como:
>
> Asignatura * totalDeAsignaturas;
> Asignatura * asignaturasAsignadas;
>
> Ambas dclaraciones crean una variable que es un puntero a un valor de
> tipo 'Asignatura'. Recuerda que un puntero o apuntador guarda un valor
> que es una dirección de memoria. Por lo tanto, el puntero no contiene
> datos de tipo 'Asignatura', sino solamente una dirección de memoria
> donde se puede encontrar tal dato.
>
> Podemos usar memoria dinámica para crear la memoria de tipo
> 'Asignatura'. Por ejemplo,
> totalDeAsignaturas = new Asignaturas;
> asignaturasAsignadas = new Asignaturas;
>
> Supongamos que la estructura 'Asignatura' se define como:
> struct Asignatura
> {
> char szNombre[128];
> char szProfesor[256];
> int nEstudiantes;
> };
>
> Ahora podemos guardar valores en la memoria creada anteriormente. Por
> ejemplo,
> strcpy( totalDeAsignaturas-> szNombre, "Matemáticas" );
> strcpy( totalDeAsignaturas-> szNombre, "A. Bermejo" );
> totalDeAsignaturas-> nEstudiante = 237;
> strcpy( asignaturasAsginadas-> szNombre, "Física" );
>
>
> Veamos lo que pasa en memoria:
> Dirección
> de Memoria Tipo Nombre Valor
> ------------------------------------------------------------
> 0x0044CC00 Asignatura * totalDeAsignaturas 0xAA55DD00
> 0x0044CC00 Asignatura * asignaturasAsginadas 0xEE661100
> ...
> 0xAA55DD00 char szNombre 'M' (Asignatura)
> 0xAA55DD01 char ---- 'a'
> 0xAA55DD02 char ---- 't'
> 0xAA55DD03 char ---- 'e'
> 0xAA55DD04 char ---- 'm'
> 0xAA55DD05 char ---- 'á'
> 0xAA55DD06 char ---- 't'
> 0xAA55DD07 char ---- 'i'
> 0xAA55DD08 char ---- 'c'
> 0xAA55DD09 char ---- 'a'
> 0xAA55DD0A char ---- 's'
> 0xAA55DD0B char ---- '\0'
> ....
> 0xAA55DD80 char szNombre 'A'
> 0xAA55DD01 char ---- '.'
> 0xAA55DD02 char ---- ' '
> 0xAA55DD03 char ---- 'B'
> 0xAA55DD84 char ---- 'e'
> 0xAA55DD85 char ---- 'r'
> 0xAA55DD86 char ---- 'm'
> 0xAA55DD87 char ---- 'e'
> 0xAA55DD88 char ---- 'j'
> 0xAA55DD89 char ---- 'o'
> 0xAA55DD8A char ---- '\0'
> ...
> 0xAA55DE80 int nEstudiantes 0x000000ED
> ...
> 0xEE661100 char szNombre 'F' (Asignatura)
> 0xEE661101 char ---- 'í'
> 0xEE661102 char ---- 's'
> 0xEE661103 char ---- 'i'
> 0xEE661104 char ---- 'c'
> 0xEE661105 char ---- 'a'
> 0xEE661106 char ---- '\0'
> ....
>
> Como puedes ver, los punteros contienen las direcciones de memoria donde
> están los valores.
>
> Espero que haya aclarado la duda.
>
> Steven
>
====================================================================<<<
Whatever you Wanadoo, click below
This email has been checked for most known viruses find out more here
http://ads.smartgroups.com/adclick/CID=00000093c79a99a500000000
====================================================================>>>
If you want to share pictures, use the calendar, or start a questionnaire
visit http://www.es.smartgroups.com/groups/c-con-clase
To leave the group, email: c-con-clase-unsubscribe@smartgroups.com