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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Consulta [C++]
« en: 29 Marzo 2011, 13:43 pm »

Buenas, lamento molestar por esta pequeñez, pero es que no como buscarla en internet, creo que es un tipo de abstracción de datos, pero al buscarlo de dicha manera me salen las formas de armar estructuras, y por ahora estoy con lo básico.

Lo que yo deseo es tomar "x" caracteres de una variable, en este caso los dos primeros, pero la variable es de tipo int, no char y quería saber si se puede hacer de otra manera que no sea mediante un array en char.

Por si no se me entiende lo dejo en Batch

Código
  1. @REM Esto es lo que quisiera hacer en C/C++...
  2. @Echo Off
  3. Setlocal EnableExtensions EnableDelayedExpansion
  4. Color 0A
  5. :: Declaracion de Variables
  6. Set "var="
  7. Set "deseado="
  8. Echo.
  9. Set /P "var=Por favor ingrese un numero entero: "
  10. Set "deseado=!var:~0,2!
  11. Echo. Presione [Cualquier Tecla] para Salir...
  12. Pause >nul
  13. Exit /B %errorlevel%
  14.  

De nuevo disculpen las molestias y Desde Ya muchas Gracias.


En línea

.: DA KILLER :.


Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Consulta [C++]
« Respuesta #1 en: 29 Marzo 2011, 13:50 pm »

Tu opción más "rentable" pasa por imprimir con sprintf o usar un stringstream para obtener el entero en una cadena, y entonces seleccionar los dos primeros carácteres.

aquí se discutió el tema hace poco.

http://foro.elhacker.net/programacion_cc/referencia_de_un_char_en_una_funcionakai_pasate_por_favor_que_modificadoxd-t322721.0.html

Por otro lado, si no quieres usar eso, tu otra opción es primero obtener el módulo 10 del número (último dígito) y luego dividir entre 10 mientras el número sea mayor que 0. Obviamente, tendrías que ir guardando en algún lado el último y penúltimo resultado del módulo.

consejo? lo primero es menos trabajo.


En línea

DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: Consulta [C++]
« Respuesta #2 en: 29 Marzo 2011, 15:03 pm »

Creo que me quedaré con el array  :P, veo que me falta mucho por conocer para tener aunque sea las bases del lenguaje, muchas gracias y cuando vuelva a mi casa subo el code del array por si alguien después lo pudiese usar para algo y se acaba el post.

De nuevo muchas gracias y cualquier consejo que me puedan dar para comenzar será bienvenido.
En línea

.: DA KILLER :.


Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Consulta [C++]
« Respuesta #3 en: 29 Marzo 2011, 18:28 pm »

Y si usases la función itoa (o algo así, es la hermana de atoi). Te pasa un int a un char, y lo puedes leer más sencillamente. Se me ocurre otra cosa más compleja, pero es lo más fácil...
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Consulta [C++]
« Respuesta #4 en: 29 Marzo 2011, 19:09 pm »

El problema, Sagrini, es que pese a que atoi es parte del estándar, itoa no lo es. Y eso puede dar problemas. Usar sprintf o sstreams (string-streams) solventa el tema sin recurrir a salirse del estandar.

Sobre itoa en http://cplusplus.com/reference/clibrary/cstdlib/itoa/

Portability
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

A standard-compliant alternative for some cases may be sprintf:
sprintf(str,"%d",value) converts to decimal base.
sprintf(str,"%x",value) converts to hexadecimal base.
sprintf(str,"%o",value) converts to octal base.
En línea

DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: Consulta [C++]
« Respuesta #5 en: 30 Marzo 2011, 13:43 pm »

Bueno finalmente decidí que sería más simple declarar una varible char en lugar de int y copiar los caracteres.

Dejo el código:

Código
  1. [...]
  2. char var1 [200] = "1995";
  3. char vared [12] = " ";
  4. vared [0] = var1[0];
  5. vared [1] = var1[1];
  6. [...]
  7.  

Antes no me funcionaba porque no había definido la variable "vared".

Saludos, gracias y perdón de nuevo por las molestias.
En línea

.: DA KILLER :.


Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Consulta [C++]
« Respuesta #6 en: 2 Abril 2011, 20:48 pm »

Pues hace tiempo pensé en crear una librería personal con funciones reprogramadas útiles del día a día, para ver cómo iban. No lo empecé, pero la función que buscamos puede ser fácil de programar... Ahora no tengo ningunas ganas, pero si queréis saber cómo sería más o menos decídmelo ;) Sería coger cada cifra (dividir entre 10*X y quitar decimales) y pasarla a su correspondiente en ASCII. No más de diez líneas ;)

Un saludo!
Sagrini
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
consulta sos
Diseño Gráfico
Dannysoft 1 2,742 Último mensaje 31 Agosto 2004, 08:13 am
por e S c u r S o ...
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines