Foro de elhacker.net

Foros Generales => Sugerencias y dudas sobre el Foro => Mensaje iniciado por: Tachikomaia en 2 Febrero 2023, 03:53 am



Título: ¿Les molestaría si hiciera preguntas sobre codes que pongan?
Publicado por: Tachikomaia en 2 Febrero 2023, 03:53 am
Ejemplo alguien posteó esto para C++ creo.
Código
  1. #include <iostream>
  2. int main()
  3. {
  4.    std::cout << "Bienvenido ";
  5.    std::cout << "a C++!\n";
  6.    return 0;
  7. }
¿Qué hace cada línea? Es que no le veo mucho sentido, no a eso particularmente, sino a cuando ponen includes y otras cosas que nunca usé. Supongo que los includes sirven para que en vez de incluir todo sólo se incluya lo necesario para ahorrar memoria, pero no me cae mucho, no sé xP Además este programa parece ser como un hola mundo ¿hay casos en que lostream no se agrega entonces? ¿cómo es posible si parece hacer algo tan básico? ¿qué hace y cuando no es necesario?

No entendí esto
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Streams#:~:text=La%20iostream%20es%20la%20biblioteca,uso%20de%20la%20biblioteca%20iostream.
cin, cout, cerr y clog me suena a chino.

Bueno, eso fue sólo un ejemplo.

No quiero hacer preguntas como estas si les molesta, así que díganme si es el caso.

Otra cuestión sería dónde, si en el tema origen o en otro.

En el tema origen no es muy recomendable, sería desviarlo.

Pero empezar a crear tantos temas por cuestiones tan básicas (para quien las sepa, no para mí) tampoco parece buena idea ¿o sí?

No es que quiera aprender cada cosa de cada lenguaje, es que ver ciertas cosas varias veces lkleva a preguntarse qué es eso y qué ventaja tienen esos lenguajes usados, por qué se usan.

Gracias.


Título: Re: ¿Les molestaría si hiciera preguntas sobre codes que pongan?
Publicado por: Lieutenant McFarley en 2 Febrero 2023, 12:29 pm
C y C++ son lenguajes con muy pocas sentencias/instrucciones. En cambio tienen muchas bibliotecas de funciones más o menos estándar que ya están escritas en C/C++ y se pueden incluir sin tener que escribirlas cada programador nuevamente cada vez.

Esas bibliotecas se incluyen con la directiva #include que le dice al compilador que busque esa biblioteca e incluya las funciones correspondientes.

En particular C/C++ no tienen instruciones propias de entrada/salida, como casi todos los lenguajes; pero existen bibliotecas ya escritas que hacen esa función; pero hay que incluirlas si se quieren usar.

"iostream"  (Input/Output Stream) es un biblioteca estándar de entrada/salida en C++, como "stdio.h" (standard input-output header" (cabecera estándar E/S)) lo es en C (aquí se usaría principalmente la función "printf").

La función "cout" es la función típica para escribir por pantalla (lo que va entre comillas). Como se va a usar -y no pertenece propiamente a C++) hay que decirle al compilador que la busque y la incluya. En este caso ha habido redundancia ya que que el "#include " va a incluir todas las funcionaes de esa cabecera. Mientras que el "std:" lo que dice es que incluya particularmente esa función (la "cout"); por lo cual si usas "#include" no haría falta usar "std", y viceversa.

La secuencia de escape "/n" se usa para indicar un salto de línea.

----------

A mi en particular no me importa que hagas preguntas, si me apetece contestaré y si no, no.

Ahora bien, estas cosas las puedes encontrar perfectamente en Google u otro buscador. Solo pones "lenguaje C", "#include" "std" "cout" "cin" (cin es la instrucción de entrada para la biblioteca "iostream", al igual que "scanf" lo es para "stdio.h") y te saldrá un montón de información. Ya he visto en otros mensajes y en las reglas, que antes de preguntar hay que informarse por uno mismo lo que pueda, y preguntar dudas concretas y no de carácter general. Y así mismo hay muchos manuales en la red de C y C++ y otros lenguajes para tener una noción aunque sea ligera de ellos.

Así que... tú mismo.


Título: Re: ¿Les molestaría si hiciera preguntas sobre codes que pongan?
Publicado por: Locura_23 en 2 Febrero 2023, 21:32 pm
A grandes rasgos significa esto

Código
  1. #include<iostream>

Esta linea le dice al programa "agrega esta porcion de codigo a mi programa (se llama libreria)" esta libreria lo que te permite es utilizar instrucciones que fueron definidas ahi. iostream es una libreria basica del lenguaje C++.

Código
  1. int main()
  2. {
  3.  
  4. }

esto se llama funcion main, todo programa cuando se ejecuta tiene que empezar desde algun lado no? entonces desde aqui se empiezan a ejecutar, se dice que es el "punto de entrada" del programa.

Código
  1. std::cout << "Bienvenido ";
  2. std::cout << "a C++!\n";

con std::cout << imprimis un mensaje por la consola, en este caso es "Bienvenido",
nota que esto se podria haber abreviado así:

Código
  1. std::cout<< "Bienvenido a C++!\n";

Código
  1. return 0;

con return se termina el programa

Por ultimo nota que C y C++ son lenguajes que pueden llegar a ser complejos para alguien que empieza.
Mira este programa que hace exactamente lo mismo pero en el lenguaje de programación Python:

Código
  1. print("Bienvenido a C++!")

Por qué se utiliza C++ si es mas complejo entonces? porque C++ es bueno para hacer algunas cosas con la PC (por ejemplo, manejar la memoria de la pc) y sus programas son rapidos.
 






Título: Re: ¿Les molestaría si hiciera preguntas sobre codes que pongan?
Publicado por: Danielㅤ en 2 Febrero 2023, 22:12 pm
Hola, estas dos líneas:

Código
  1. std::cout << "Bienvenido ";
  2. std::cout << "a C++!\n";
  3.  

se las puede reducir de esta forma:

Código
  1. std::cout << "Bienvenido \na C++!\n";
  2.  

Por otro lado la instrucción return 0; significa que el programa termina su ejecución de una función devolviendo el valor 0, que quiere decir que no hay errores y cuando si hay errores (al menos uno) entonces devuelve el valor 1.


Saludos


Título: Re: ¿Les molestaría si hiciera preguntas sobre codes que pongan?
Publicado por: MinusFour en 3 Febrero 2023, 04:47 am
Yo creo que explicar #include involucra explicar porque se utilizan cabeceras. Las respuestas del tema hacen creer que al poner los includes estás incluyendo las librerias como tal. No, generalmente estás incluyendo las cabeceras de las librerias solamente. De hecho, la instrucción es literalmente remplazada por el contenido de ese archivo así que podría ir más allá de eso.