SlideShare una empresa de Scribd logo
Uso de las
clases iostream
Clase 04
Uso de las clases iostream
• Ahora ya tiene suficientes conocimientos para crear y compilar un
programa. Este programa usará las clases de flujo de entrada-salida
(iostream) del C++ estándar.
• iostream es capaz de leer y escribir en ficheros o en la entrada y salida
estándar (que suele ser la consola, pero que puede ser redirigida a ficheros
o dispositivos). En este programa simple, se usa un objeto stream (flujo)
para imprimir un mensaje en pantalla
Uso de las clases iostream
• Para declarar las funciones y los datos externos que contenga la clase
iostream hay que incluir el fichero de cabecera de la siguiente manera:
Uso de las clases iostream
• El primer programa usa el concepto de salida estándar, que significa un
lugar de propósito general, al que se le pueden enviar cosas. Se verá otros
ejemplos que utilizan la salida estándar de otras formas, pero aquí
simplemente usaremos la consola.
• El paquete iostream define una variable (un objeto) llamado cout de forma
automática que es capaz de enviar todo tipo de datos a la salida estándar.
Uso de las clases iostream
• Para enviar datos a la salida estándar, se usa el operador. Los
programadores de C lo conocen como operador de “desplazamiento a la
izquierda”. Basta decir que el desplazamiento a la izquierda no tiene nada
que ver con la salida. Sin embargo, C++ permite que los operadores sean
sobrecargados.
• Cuando se sobrecarga un operador, se le da un nuevo significado siempre
que dicho operador se use con un objeto de determinado tipo. Con los
objetos de iostream, el operador << significa “enviar a”. Por ejemplo:
Uso de las clases iostream
envía la cadena “¿Qué tal?” al objeto llamado cout (que es un diminutivo
de “console output” (salida por consola).
Espacios de nombres
• Como se menciona, uno de los problemas del lenguaje C es que “nos quedamos sin
nombres” para funciones e identificadores cuando los programas llegan a ser de cierto
tamaño. Por supuesto que realmente no nos quedamos sin nombres; aunque se hace
más difícil pensar en nombres nuevos después de un rato. Y todavía más importante,
cuando un programa alcanza cierto tamaño es normal fragmentarlo en trozos más
pequeños cada uno de los cuales es mantenido por diferentes personas o grupos. Como
C sólo tiene un problema para lidiar con todos los identificadores y nombres de función,
trae como consecuencia que todos los desarrolladores deben tener cuidado de no usar
accidentalmente los mismos nombres en situaciones en las que pueden ponerse en
conflicto. Esto se convierte en una pérdida de tiempo, se hace tedioso y en último
término, es más caro.
Espacios de nombres
• El C++ Estándar tiene un mecanismo para impedir estas colisiones: la
palabra reservada namespace (espacio de nombres). Cada conjunto de
definiciones de una librería o programa se “envuelve” en un espacio de
nombres, y si otra definición tiene el mismo nombre, pero está en otro
espacio de nombres, entonces no se produce colisión.
Espacios de nombres
• Hay una palabra reservada que le permite decir “quiero usar las
declaraciones y/o definiciones de este espacio de nombres”. Esa palabra
reservada, bastante apropiada por cierto, es using. Todas las librerías de
C++ Estándar están incluidas en un único espacio de nombres, que es std
(por “standard”). Como este curso se usa la librería estándar casi
exclusivamente, se verá la siguiente directiva using en casi todos los
programas
Espacios de nombres
• Esto significa que quiere usar todos los elementos del espacio de nombres
llamado std. Después de esta sentencia, ya no hay que preocuparse de si
su componente o librería particular pertenece a un espacio de nombres,
porque la directiva using hace que el espacio de nombres esté disponible
para todo el fichero donde se escribió la directiva using.
Espacios de nombres
• Exponer todos los elementos de un espacio de nombres después de que
alguien se ha molestado en ocultarlos, parece contraproducente, y de
hecho, el estudiante deberá tener cuidado si considera hacerlo (como
aprenderá más tarde en este curso). Sin embargo, la directiva using expone
solamente los nombres para el fichero actual, por lo que no es tan drástico
como suena al principio. (pero piénsalo dos veces antes de usarlo en un
fichero cabecera, eso es temerario).
Espacios de nombres
• Existe una relación entre los espacios de nombres y el modo en que se
incluyes los ficheros de cabecera. Antes de que se estandarizara la nueva
forma de inclusión de los ficheros cabecera (sin el “.h” como en
<iostream>), la manera típica de incluir un fichero de cabecera era con el
“.h” como en <iostream.h>. En esa época los espacios de nombres
tampoco eran parte del lenguaje, por lo que para mantener una
compatibilidad hacia atrás con el código existente, si se escribía:
Espacios de nombres
• En realidad, significaba:
Fundamentos de la estructura de los
programa
• Un programa C o C++ es una colección de variables, definiciones de
función, y llamada a funciones. Cuando el programa arranca, ejecuta el
código de inicialización y llama a una función especial, “main()”, que es
donde debe colocarse el código principal del programa.
• Como se mencionó anteriormente, una definición de función consiste en un
valor de retorno (que debe ser especificarse obligatoriamente C++), un
nombre de función, una lista de argumentos, y el código de la función entre
llaves. Aquí hay un ejemplo de definición de función:
Fundamentos de la estructura de los
programa
La función de arriba tiene una lista vacía de argumentos y un cuerpo que contiene únicamente un
comentario.
Puede haber varios pares de llaves en la definición de una función, pero siempre debe haber al menos
dos que envuelvan todo el cuerpo de la función. Como main( ) es una función, debe seguir esas reglas.
En C++, main( ) siempre devuelve un valor de tipo int (entero).
Fundamentos de la estructura de los
programa
• C y C++ son lenguajes de formato libre. Con un par de excepciones, el
compilador ignora los espacios en blanco y los saltos de línea, por lo que hay
que determinar el final de una sentencia. Las sentencias están delimitadas por
punto y coma.
• Los comentarios en C empiezan con /* y finalizan con */. Pueden incluir saltos
de línea. C++ permite este estilo de comentarios y añade la doble barra
inclinada:
• //. La // empieza un comentario que finaliza con el salto de línea. Es más útil
que /* */ y se usa ampliamente en este curso.
“Hello,World!”
• Y por fin, el primer programa:
“Hello,World!”
• Y por fin, el primer programa:
“Hello,World!”
• El objeto cout maneja una serie de argumentos por medio de los operadores
<<, que imprime los argumentos de izquierda a derecha. La función especial
endl provoca un salto de línea. Con los iostreams se puede encadenar una serie
de argumentos como aquí, lo que hace que se una clase fácil de usar.
• En C, el texto que se encuentra entre comillas dobles se denomina “cadena”
(string). Sin embargo, la librería Estándar de C++ tiene una poderosa clase
llamada string para manipulación de texto, por lo que usaremos el término más
preciso array de caracteres para el texto que se encuentre entre dobles
comillas
“Hello,World!”
• El compilador pide espacio de memoria para los arrays de caracteres y guarda el
equivalente ASCII para cada carácter en este espacio. El compilador finaliza
automáticamente este array de caracteres añadiendo el valor 0 para indicar el final.
• Dentro del array de caracteres, se pueden insertar caracteres especiales usando las
secuencias de escape. Consisten en una barra invertida () seguida de un código
especial. por ejemplo n significa salto de línea. El manual del compilador o la guía
concreta de C ofrece una lista completa de secuencia; entre otras se incluye: t
(tabulador),  (barra invertida), y b (retroceso).
• Tenga en cuenta que la sentencia puede continuar en otras líneas, y la sentencia
completa termina con un punto y coma.
“Hello,World!”
• Los argumentos de tipo array de caracteres y los números constantes están
mezclados en la sentencia cout anterior. Como el operador << está
sobrecargado con varios significados cuando se usa con cout, se pueden
enviar distintos argumentos y cout se encargará de mostrarlos
Más sobre iostreams
• Hasta ahora sólo ha visto los aspectos más rudimentarios de las clases
iostream.
• El formato de salida que permiten los iostreams también incluyen
características como el formato de números en decimal, octal, y
hexadecimal. Aquí tiene otro ejemplo del uso de los iostreams
Más sobre iostreams
Más sobre iostreams
Más sobre iostreams
• Este ejemplo muestra cómo la clase iostreams imprime números en
decimal, octal, y hexadecimal usando manipuladores (los cuales no
imprimen nada, pero cambian el estado del flujo de salida). El formato de
los números en punto flotante lo determina automáticamente el
compilador. Además, cualquier se puede enviar cualquier caracter a un
objeto stream usando un molde (cast) a char (un char es un tipo de datos
que manipula un sólo caracter). Este molde parece una llamada a función:
char( ), devuelve un valor ASCII. En el programa de arriba, el char(27) envía
un ¨escape¨ a cout.
Concatenar vectores de caracteres
• Una característica importante del preprocesador de C es la concatenación
de arrays de caracteres. Esta característica se usa en algunos de los
ejemplos de este curso. Si se colocan juntos dos arrays de caracteres
entrecomillados, sin signos de puntuación entre ellos, el compilador los
pegará en un único array de caracteres. Esto es particularmente útil cuando
los listados de código tienen restricciones de anchura.
Concatenar vectores de caracteres
Concatenar vectores de caracteres
Concatenar vectores de caracteres
• Al principio, el código de arriba puede parecer erróneo porque no está el ya
familiar punto y coma al final de cada línea. Recuerde que C y C++ son
lenguajes de formato libre, y aunque normalmente verá un punto y coma al
final de cada línea, el requisito real es que haya un punto y coma al final de
cada sentencia, por lo que es posible encontrar una sentencia que ocupe
varias líneas

Más contenido relacionado

PDF
Ejercicios resueltos en el Laboratorio de estructuras struct registros
PDF
Modelo espiral win win
PDF
Tutorial de JFLAP
DOCX
Mapa conceptual archivos en java
PPTX
Requerimiento funcional y no funcional
PPTX
2 2 estilos arquitectonicos
PPTX
Tipos de usuarios de base de datos diapositivas
PPTX
Rational rose
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Modelo espiral win win
Tutorial de JFLAP
Mapa conceptual archivos en java
Requerimiento funcional y no funcional
2 2 estilos arquitectonicos
Tipos de usuarios de base de datos diapositivas
Rational rose

La actualidad más candente (20)

PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PDF
Requisitos no Funcionales
PPT
Estructuras en c++
PPTX
Analisis y especificacion de requerimientos
PPT
diseño lógico y diseño físico
PPTX
Ingenieria de requerimientos
PPT
Diccionario de datos
PPTX
Software caja negra y caja blanca
PPS
Identificadores, variables y constantes
PDF
8b Curso de POO en java - paso de diagrama clases a java 1
PDF
16 Curso de POO en java - arreglos unidimensionales
PPT
3 modelo er
PDF
Ingenieria de software
PPTX
Diagrama UML de Clases
PDF
Persistencia de datos en Java
PPTX
Modelamiento software
PPTX
CLASE SWING
PPTX
Estructura de Datos - Estructuras no lineales
PPTX
Normalización en Bases de datos
PPTX
Fundamentos básicos de algoritmos (1)
Estructura de Datos - Unidad 6 Metodos de busqueda
Requisitos no Funcionales
Estructuras en c++
Analisis y especificacion de requerimientos
diseño lógico y diseño físico
Ingenieria de requerimientos
Diccionario de datos
Software caja negra y caja blanca
Identificadores, variables y constantes
8b Curso de POO en java - paso de diagrama clases a java 1
16 Curso de POO en java - arreglos unidimensionales
3 modelo er
Ingenieria de software
Diagrama UML de Clases
Persistencia de datos en Java
Modelamiento software
CLASE SWING
Estructura de Datos - Estructuras no lineales
Normalización en Bases de datos
Fundamentos básicos de algoritmos (1)
Publicidad

Destacado (9)

PPTX
Clase 03
PPTX
Practica 1
PPTX
Elementos basicos c++
PPTX
Clase 01
PPTX
Complementos
PPTX
Historia de la programacion
PDF
Fundamentos y Lógica de Programación
PPTX
Simulación ok
PPT
Pseudocodigo
Clase 03
Practica 1
Elementos basicos c++
Clase 01
Complementos
Historia de la programacion
Fundamentos y Lógica de Programación
Simulación ok
Pseudocodigo
Publicidad

Similar a Uso de las clases iostream (20)

PPTX
Bibliotecas o libreria de c++
PPTX
BIBLIOTECAS PARA C++
PPTX
Bibliotecas o librerias_para_c_
PDF
bibliotecasolibreriasenc-170322144450-1.pdf
PPTX
Bibliotecas de-c
PPTX
librerias.pptx
PPTX
Bibliotecas de C
PPTX
Bibliotecas de c_
PPTX
Bibliotecas que existen_para_c++_ (2)
PPTX
Bibliotecas que existen_para_c++
PPSX
Material de apoyo: Componentes y tipos de Datos PDF
PPTX
BIBLIOTECAS QUE EXITEN PARA C++
PPT
Lenguaje
PPTX
Centro de estudios_tecnologicos_industrial_y_de_servicios
PPTX
Centro de estudios_tecnologicos_industrial_y_de_servicios
PPT
Primera Clase
PPS
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
PPTX
Estructura basica para_c_
PPTX
Presentacion de la Estructura basica para_c++
PPT
Elementos básicos del lenguaje
Bibliotecas o libreria de c++
BIBLIOTECAS PARA C++
Bibliotecas o librerias_para_c_
bibliotecasolibreriasenc-170322144450-1.pdf
Bibliotecas de-c
librerias.pptx
Bibliotecas de C
Bibliotecas de c_
Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++
Material de apoyo: Componentes y tipos de Datos PDF
BIBLIOTECAS QUE EXITEN PARA C++
Lenguaje
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
Primera Clase
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Estructura basica para_c_
Presentacion de la Estructura basica para_c++
Elementos básicos del lenguaje

Más de Tensor (20)

PDF
Libertad
PPTX
Método de la regla falsa (o metodo de la falsa posición)
PPTX
Metodo de la bisección
PPTX
Transito vehicular
PPTX
Teoria de colas
PDF
Practica 7 2016
PDF
Practica 6 2016
PPTX
Game maker
PDF
Practica 5 2016
PPTX
Procesamiento de archivos
PPTX
Cadenas y funciones de cadena
PPTX
Simulación en promodel clase 04
PDF
Reduccion de orden
PDF
Variación+de+parametros
PDF
Coeficientes indeterminados enfoque de superposición
PDF
Bernoulli y ricatti
PDF
Practica no. 3 tiempo de servicio
PPTX
Clase 14 ondas reflejadas
PDF
Ondas em
PPTX
Clase 7 ondas electromagneticas
Libertad
Método de la regla falsa (o metodo de la falsa posición)
Metodo de la bisección
Transito vehicular
Teoria de colas
Practica 7 2016
Practica 6 2016
Game maker
Practica 5 2016
Procesamiento de archivos
Cadenas y funciones de cadena
Simulación en promodel clase 04
Reduccion de orden
Variación+de+parametros
Coeficientes indeterminados enfoque de superposición
Bernoulli y ricatti
Practica no. 3 tiempo de servicio
Clase 14 ondas reflejadas
Ondas em
Clase 7 ondas electromagneticas

Último (20)

PDF
biología es un libro sobre casi todo el tema de biología
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
biología es un libro sobre casi todo el tema de biología
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Tarea De El Colegio Coding For Kids 1 y 2
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Metodologías Activas con herramientas IAG
Escuelas Desarmando una mirada subjetiva a la educación
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Escuela Sabática 6. A través del Mar Rojo.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN

Uso de las clases iostream

  • 1. Uso de las clases iostream Clase 04
  • 2. Uso de las clases iostream • Ahora ya tiene suficientes conocimientos para crear y compilar un programa. Este programa usará las clases de flujo de entrada-salida (iostream) del C++ estándar. • iostream es capaz de leer y escribir en ficheros o en la entrada y salida estándar (que suele ser la consola, pero que puede ser redirigida a ficheros o dispositivos). En este programa simple, se usa un objeto stream (flujo) para imprimir un mensaje en pantalla
  • 3. Uso de las clases iostream • Para declarar las funciones y los datos externos que contenga la clase iostream hay que incluir el fichero de cabecera de la siguiente manera:
  • 4. Uso de las clases iostream • El primer programa usa el concepto de salida estándar, que significa un lugar de propósito general, al que se le pueden enviar cosas. Se verá otros ejemplos que utilizan la salida estándar de otras formas, pero aquí simplemente usaremos la consola. • El paquete iostream define una variable (un objeto) llamado cout de forma automática que es capaz de enviar todo tipo de datos a la salida estándar.
  • 5. Uso de las clases iostream • Para enviar datos a la salida estándar, se usa el operador. Los programadores de C lo conocen como operador de “desplazamiento a la izquierda”. Basta decir que el desplazamiento a la izquierda no tiene nada que ver con la salida. Sin embargo, C++ permite que los operadores sean sobrecargados. • Cuando se sobrecarga un operador, se le da un nuevo significado siempre que dicho operador se use con un objeto de determinado tipo. Con los objetos de iostream, el operador << significa “enviar a”. Por ejemplo:
  • 6. Uso de las clases iostream envía la cadena “¿Qué tal?” al objeto llamado cout (que es un diminutivo de “console output” (salida por consola).
  • 7. Espacios de nombres • Como se menciona, uno de los problemas del lenguaje C es que “nos quedamos sin nombres” para funciones e identificadores cuando los programas llegan a ser de cierto tamaño. Por supuesto que realmente no nos quedamos sin nombres; aunque se hace más difícil pensar en nombres nuevos después de un rato. Y todavía más importante, cuando un programa alcanza cierto tamaño es normal fragmentarlo en trozos más pequeños cada uno de los cuales es mantenido por diferentes personas o grupos. Como C sólo tiene un problema para lidiar con todos los identificadores y nombres de función, trae como consecuencia que todos los desarrolladores deben tener cuidado de no usar accidentalmente los mismos nombres en situaciones en las que pueden ponerse en conflicto. Esto se convierte en una pérdida de tiempo, se hace tedioso y en último término, es más caro.
  • 8. Espacios de nombres • El C++ Estándar tiene un mecanismo para impedir estas colisiones: la palabra reservada namespace (espacio de nombres). Cada conjunto de definiciones de una librería o programa se “envuelve” en un espacio de nombres, y si otra definición tiene el mismo nombre, pero está en otro espacio de nombres, entonces no se produce colisión.
  • 9. Espacios de nombres • Hay una palabra reservada que le permite decir “quiero usar las declaraciones y/o definiciones de este espacio de nombres”. Esa palabra reservada, bastante apropiada por cierto, es using. Todas las librerías de C++ Estándar están incluidas en un único espacio de nombres, que es std (por “standard”). Como este curso se usa la librería estándar casi exclusivamente, se verá la siguiente directiva using en casi todos los programas
  • 10. Espacios de nombres • Esto significa que quiere usar todos los elementos del espacio de nombres llamado std. Después de esta sentencia, ya no hay que preocuparse de si su componente o librería particular pertenece a un espacio de nombres, porque la directiva using hace que el espacio de nombres esté disponible para todo el fichero donde se escribió la directiva using.
  • 11. Espacios de nombres • Exponer todos los elementos de un espacio de nombres después de que alguien se ha molestado en ocultarlos, parece contraproducente, y de hecho, el estudiante deberá tener cuidado si considera hacerlo (como aprenderá más tarde en este curso). Sin embargo, la directiva using expone solamente los nombres para el fichero actual, por lo que no es tan drástico como suena al principio. (pero piénsalo dos veces antes de usarlo en un fichero cabecera, eso es temerario).
  • 12. Espacios de nombres • Existe una relación entre los espacios de nombres y el modo en que se incluyes los ficheros de cabecera. Antes de que se estandarizara la nueva forma de inclusión de los ficheros cabecera (sin el “.h” como en <iostream>), la manera típica de incluir un fichero de cabecera era con el “.h” como en <iostream.h>. En esa época los espacios de nombres tampoco eran parte del lenguaje, por lo que para mantener una compatibilidad hacia atrás con el código existente, si se escribía:
  • 13. Espacios de nombres • En realidad, significaba:
  • 14. Fundamentos de la estructura de los programa • Un programa C o C++ es una colección de variables, definiciones de función, y llamada a funciones. Cuando el programa arranca, ejecuta el código de inicialización y llama a una función especial, “main()”, que es donde debe colocarse el código principal del programa. • Como se mencionó anteriormente, una definición de función consiste en un valor de retorno (que debe ser especificarse obligatoriamente C++), un nombre de función, una lista de argumentos, y el código de la función entre llaves. Aquí hay un ejemplo de definición de función:
  • 15. Fundamentos de la estructura de los programa La función de arriba tiene una lista vacía de argumentos y un cuerpo que contiene únicamente un comentario. Puede haber varios pares de llaves en la definición de una función, pero siempre debe haber al menos dos que envuelvan todo el cuerpo de la función. Como main( ) es una función, debe seguir esas reglas. En C++, main( ) siempre devuelve un valor de tipo int (entero).
  • 16. Fundamentos de la estructura de los programa • C y C++ son lenguajes de formato libre. Con un par de excepciones, el compilador ignora los espacios en blanco y los saltos de línea, por lo que hay que determinar el final de una sentencia. Las sentencias están delimitadas por punto y coma. • Los comentarios en C empiezan con /* y finalizan con */. Pueden incluir saltos de línea. C++ permite este estilo de comentarios y añade la doble barra inclinada: • //. La // empieza un comentario que finaliza con el salto de línea. Es más útil que /* */ y se usa ampliamente en este curso.
  • 17. “Hello,World!” • Y por fin, el primer programa:
  • 18. “Hello,World!” • Y por fin, el primer programa:
  • 19. “Hello,World!” • El objeto cout maneja una serie de argumentos por medio de los operadores <<, que imprime los argumentos de izquierda a derecha. La función especial endl provoca un salto de línea. Con los iostreams se puede encadenar una serie de argumentos como aquí, lo que hace que se una clase fácil de usar. • En C, el texto que se encuentra entre comillas dobles se denomina “cadena” (string). Sin embargo, la librería Estándar de C++ tiene una poderosa clase llamada string para manipulación de texto, por lo que usaremos el término más preciso array de caracteres para el texto que se encuentre entre dobles comillas
  • 20. “Hello,World!” • El compilador pide espacio de memoria para los arrays de caracteres y guarda el equivalente ASCII para cada carácter en este espacio. El compilador finaliza automáticamente este array de caracteres añadiendo el valor 0 para indicar el final. • Dentro del array de caracteres, se pueden insertar caracteres especiales usando las secuencias de escape. Consisten en una barra invertida () seguida de un código especial. por ejemplo n significa salto de línea. El manual del compilador o la guía concreta de C ofrece una lista completa de secuencia; entre otras se incluye: t (tabulador), (barra invertida), y b (retroceso). • Tenga en cuenta que la sentencia puede continuar en otras líneas, y la sentencia completa termina con un punto y coma.
  • 21. “Hello,World!” • Los argumentos de tipo array de caracteres y los números constantes están mezclados en la sentencia cout anterior. Como el operador << está sobrecargado con varios significados cuando se usa con cout, se pueden enviar distintos argumentos y cout se encargará de mostrarlos
  • 22. Más sobre iostreams • Hasta ahora sólo ha visto los aspectos más rudimentarios de las clases iostream. • El formato de salida que permiten los iostreams también incluyen características como el formato de números en decimal, octal, y hexadecimal. Aquí tiene otro ejemplo del uso de los iostreams
  • 25. Más sobre iostreams • Este ejemplo muestra cómo la clase iostreams imprime números en decimal, octal, y hexadecimal usando manipuladores (los cuales no imprimen nada, pero cambian el estado del flujo de salida). El formato de los números en punto flotante lo determina automáticamente el compilador. Además, cualquier se puede enviar cualquier caracter a un objeto stream usando un molde (cast) a char (un char es un tipo de datos que manipula un sólo caracter). Este molde parece una llamada a función: char( ), devuelve un valor ASCII. En el programa de arriba, el char(27) envía un ¨escape¨ a cout.
  • 26. Concatenar vectores de caracteres • Una característica importante del preprocesador de C es la concatenación de arrays de caracteres. Esta característica se usa en algunos de los ejemplos de este curso. Si se colocan juntos dos arrays de caracteres entrecomillados, sin signos de puntuación entre ellos, el compilador los pegará en un único array de caracteres. Esto es particularmente útil cuando los listados de código tienen restricciones de anchura.
  • 29. Concatenar vectores de caracteres • Al principio, el código de arriba puede parecer erróneo porque no está el ya familiar punto y coma al final de cada línea. Recuerde que C y C++ son lenguajes de formato libre, y aunque normalmente verá un punto y coma al final de cada línea, el requisito real es que haya un punto y coma al final de cada sentencia, por lo que es posible encontrar una sentencia que ocupe varias líneas