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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Pregunta de principiante.
« en: 13 Agosto 2011, 01:43 am »

Buenas, escribo para plantear una pregunta de principiante:

Bien, hace unos años estuve programando en C++ siguiendo un libro llamado "Aprenda C++ como si estuviera en primero"; en dicho libro aprendí que para mostrar un mensaje en la pantalla se usa:

Código:
printf

Sin embargo ahora, buscando varias versiones de este manual para volver a la programación, acabé cansándome ya que todas las que encontré tenían un lenguaje un poco complejo, y no conseguí dar con la versión para "super principiantes nivel 0" que era con la que me entendía.

Al final opté por buscar otros manuales y acabé con un pequeño video-tutorial de 9 capítulos que te intruce en la programación (aqui os dejo el primer capitulo: http://www.youtube.com/watch?v=eVaFqHE1mIY ). Mi duda surje al fijarme en que en vez de usar "printf" para imprimir un mensaje en la pantalla, usa el código "cout".

De la misma forma después de un comando añade "<<" en el caso de cout y ">>" en el caso de cin. Quisiera saber a qué es debido que use comandos en C++ que no eran los que aprendí hace unos años ni son los mismos que usan los programadores que hay en esta página (he revisado varios scripts y parece otro lenguaje O.o).


Disculpad si es una pregunta demasiado tonta, pero me resulta demasiado extraño que estudiando el mismo lenguaje use códigos diferentes.

Saludos.


« Última modificación: 13 Agosto 2011, 01:49 am por Alien-Z » En línea

jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: Pregunta de principiante.
« Respuesta #1 en: 13 Agosto 2011, 02:04 am »

hay distintas formas de mostrar un resultado.

te recomiendo usar la mejor,jejjejeee.


En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Pregunta de principiante.
« Respuesta #2 en: 13 Agosto 2011, 02:06 am »

mmm.... agradecería que me lo aclararais mejor... ¿da lo mismo la forma que use?, ¿afecta de alguna forma al programa?.

Citar
te recomiendo usar la mejor,jejjejeee.

¿Y cuál es la mejor? O.o... me parece un poco incoherente esta respuesta...
« Última modificación: 13 Agosto 2011, 02:46 am por Alien-Z » En línea

beholdthe


Desconectado Desconectado

Mensajes: 2.736


Ver Perfil
Re: Pregunta de principiante.
« Respuesta #3 en: 13 Agosto 2011, 04:16 am »

mmm.... agradecería que me lo aclararais mejor... ¿da lo mismo la forma que use?, ¿afecta de alguna forma al programa?.

¿Y cuál es la mejor? O.o... me parece un poco incoherente esta respuesta...
+1
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Pregunta de principiante.
« Respuesta #4 en: 13 Agosto 2011, 06:50 am »

Lo que pasa es que "printf" es de C.
En C++ tenés el manejo de objetos, la programación orientada a objetos y se simplifican muchísimas cosas.
Por ejemplo con la sobrecarga de operadores. al hacer "cout << algo;" se está sobrecargando el operador "<<" y es lo mismo que hacer un printf, pero te simplifica muchísimo la tarea.
Yo creo que lo primero a aprender es C, luego tenés que aprender C++, y con esto la programación orientada a objetos.

Citar
Disculpad si es una pregunta demasiado tonta, pero me resulta demasiado extraño que estudiando el mismo lenguaje use códigos diferentes.
Ninguna pregunta es tonta, si tenemos una duda hay que resolverla.

El código no varía mucho, lo que si tenés que prestar atención es las diferencias entre C y C++, y así también las diferencias entre distintos compiladores, algunos ponen int main(), en otros aceptan void main( void ).
Cosas así, pero la sintaxis es la misma.

Como siempre hay un libro que yo recomiendo, es un manual de C++ escrito por Pozo Coronado, donde a mi parecer está todo muy bien explicado. saludos.
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Pregunta de principiante.
« Respuesta #5 en: 13 Agosto 2011, 13:09 pm »

Lo que pasa es que "printf" es de C.

También es de C++.
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Pregunta de principiante.
« Respuesta #6 en: 13 Agosto 2011, 13:44 pm »

Citar
También es de C++.

¿Pero por usar es más correcto cout o printf? (esto solo es un ejemplo, he visto más funciones como es el caso de "cin" en vez de "scanf" o el almacenamiento de datos introducidos por el usuario que antes lo hacía con ("%d", &nombrevariable) y sin embargo ahora basta con usar "cin >> nombrevariable"). Aqui he encontrado un ejemplo: http://foro.elhacker.net/programacion_cc/triangulo_problema_al_compilar-t336278.0.html

Citar
En C++ tenés el manejo de objetos, la programación orientada a objetos y se simplifican muchísimas cosas.
Por ejemplo con la sobrecarga de operadores. al hacer "cout << algo;" se está sobrecargando el operador "<<" y es lo mismo que hacer un printf, pero te simplifica muchísimo la tarea.

Vale muchas gracias, ya me ha quedado un poco más claro, entonces debería seguir la metodología del tutorial que he linkeado en el primer mensaje (usando códigos orientados a objetos como me has explicado).

Citar
Como siempre hay un libro que yo recomiendo, es un manual de C++ escrito por Pozo Coronado, donde a mi parecer está todo muy bien explicado. saludos.

Lo he buscado y estoy echándole un vistazo, por lo que veo de primeras lo explica todo de forma detallada asi que lo seguiré como referencia.

Otra duda que me ha surgido, qué diferencia hay entre llamar a una libreria asi:

Código:
# include <iostream>

O asi:

Código:
# include <iostream.h>

¿Qué es el ".h" que añaden algunos programadores (y otros lo omiten)?, ¿cómo es más correcto?.

Gracias de nuevo, saludos.
« Última modificación: 13 Agosto 2011, 15:39 pm por Alien-Z » En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Pregunta de principiante.
« Respuesta #7 en: 13 Agosto 2011, 21:06 pm »

También es de C++.
Por supuesto, todo lo que esté en C es de C++, yo solo quise decir que en C++ tenés otras alternativas, que en realidad serían las mismas pero mejoradas.

Código:
¿Pero por usar es más correcto cout o printf? 
Eso es depende a qué te acostumbres. Si vos querés la POO, creo que tendrías que acostumbrarte a usar cout, a sobrecargar operadores, como así también a usar String en lugar de un vector de caracteres, etc...
De todas formas en el funcionamiento no cambia.

Citar
¿Qué es el ".h" que añaden algunos programadores (y otros lo omiten)?, ¿cómo es más correcto?.
El <iostream> NO lleva ".h", solo ví el ".h" en códigos para entornos de windows, la verdad no lo sé por qué lo lleva, porque yo no lo uso.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Pregunta de principiante.
« Respuesta #8 en: 19 Agosto 2011, 05:22 am »

La forma "políticamente correcta" es <N> ya que así las facilidades cortesía de ese encabezado se colocan en el nombre de espacios estándar "std", para acceder a ellos se utiliza el nombre compuesto "std::X", "std::Y", etc. o bien directivas "using" para incluir en el nombre de espacios global solo los nombres necesarios.

La forma <N.h> es equivalente a:
Código
  1. #include <N>
  2. using namespace::std;
Con la desventaja de que todos los nombres cortesía de la inclusión ahora están en el nombre de espacios global lo que abre la puerta al conflicto de nombres (y la razón de los nombres de espacios es justamente eso: evitarlos).

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
Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Pregunta de principiante.
« Respuesta #9 en: 20 Agosto 2011, 19:23 pm »

Hola!!

Mira que ya te dijeron, En C, se usa como entradas y salidas estandar printf y scanf, pero en C++ lo han mejorado y ahora es mas facil utilizar cout<<; y cin>>; aunque todo depende de lo que te parezca más cómodo.

cout<<; = mostrar:
cin>>;   = tomar:

Ejemplo:
Así lo haríamos en C:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int x=10,y;
  6. printf("El valor de x es:%i\n",x); //endl se una para saltar de línea
  7. printf("Ingrese un valor para y:");
  8. scanf("%i",&y);
  9. printf("El valor de x es:%i\n",x);
  10. printf("Y el valor de y es:%i",y);
  11.  
  12. return 0;
  13. }
  14.  
Y así lo haríamos normalmente en C++, aunque todo código hecho en C tambiem compila en C++ por lo cual el código de arriba tambien es válido en C++
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int x=10,y;
  8. cout<<"El valor de x es:"<<x<<endl; //endl se una para saltar de línea
  9. cout<<"Ingrese un valor para y:";
  10. cin>>y;
  11. cout<<"El valor de x es:"<<x<<endl<<" Y el valor de y es:"<<y;
  12.  
  13. cin.get();cin.get();
  14. return 0;
  15. }
  16.  

Si me equivoco por favor que me corrijan, saludos  ;D.

EDIT:

Gracias por la aclaración!!
Ya lo cambie ^^
« Última modificación: 20 Agosto 2011, 21:41 pm por danyhack » En línea

adada
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
3 preguntas de un principiante
Multimedia
Pe 7 3,039 Último mensaje 18 Enero 2004, 11:46 am
por Songoku
Principiante.
Diseño Gráfico
SebaKV 9 4,361 Último mensaje 15 Abril 2005, 22:38 pm
por SANSARA
Pregunta de principiante. Router Wireless G o N
Redes
abelsfc 1 2,747 Último mensaje 17 Marzo 2012, 23:25 pm
por HdM
Principiante pregunta: arquitectura, framework para proyectos de escritorio
Java
Hadess_inf 3 2,985 Último mensaje 17 Octubre 2013, 22:51 pm
por Mitsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines