Entrada / SalidaStreamsArchivos
Algoritmos y Estructuras de Datos I
Departamento de Computación, Facultad de Ciencias Exactas y Naturales,
Universidad de Buenos Aires
Introducción
• Repaso de tipos
• Repaso de clases
• Entrada / Salida por consola (cin / cout)
• Entrada / Salida por archivo (librería fstream)
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Repaso de tipos
• int
• double
• char
• String
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Repaso de tipos
• int: Representa un número entero
• double: Representa un número real
• char: Representa un carácter.
• string: Representa una secuencia de caracteres.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) cout << “Hola Mundo”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) cout << “Hola Mundo”; return 0;}
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ int i = 4; cout << i; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ int i = 4; cout << i; return 0;}
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ char i = 'c'; int i = 4; double i = 3.4; string i = “Salida de Viernes”; cout << i; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) {
int Argentina = 0;int Ecuador = 2;
cout << “Ecuador gano por “ << (Ecuador – Argentina) << “ goles”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) {
int Argentina = 0;int Ecuador = 2;
cout << “Ecuador gano por “ << (Ecuador – Argentina) << “ goles”; return 0;}
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Un gran poder conlleva una gran responsabilidad ...
Salida
Ejercicio: Hacer un programa que muestre por pantalla los primeros mil números naturales.
... tienen 5 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Tipear los 1000 número me va a llevar más de 5 min. ... qué era eso de los ciclos?
Objetos
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Clases
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Objetos
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
bicicleta.h
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
bicicleta.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
main.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
main.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
Salida
Ejercicio: Agregar al tipo Bicicleta los métodos públicos
string modelo() const;string color() const;int ruedas()
void mostrarsePorPantalla();
... tienen 7 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
No se me cae una idea ...
Salida
¿Qué pasa si utilizo ...
Bicicleta b1(“paseo”,”rojo”,2);cout << b1;
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
¿Qué pasa si utilizo ...
Bicicleta b1(“paseo”,”rojo”,2);cout << b1;
error: no match for ‘operator<<’ in .....
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
¿Solución: Implementar el operador << para el tipo Bicicleta ...
cout b1 bicicleta.h
std::ostream & operator<<(std::ostream & os,const Bicicleta & b);
bicicleta.cpp
std::ostream & operator<<(std::ostream & os,const Bicicleta & b){ os << "Modelo: " << b.modelo() << " Color: " << b.color() << " Cant. Ruedas: " << b.ruedas(); return os;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Ejercicio: implementar operator << en Bicicleta
... tienen 3 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
No se me cae una idea ...
cout b1 bicicleta.h
std::ostream & operator<<(std::ostream & os,const Bicicleta & b);
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
NUEVO
NUEVO
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Callejón sin Salida
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
Por qué levanta “cross” y no levanta “cross amarillo” ?
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
Por qué levanta “cross” y no levanta “cross amarillo” ?Y si el archivo tiene:
o tiene:
(cross racer amarillo 2)
(cross racer amarillo patito 2)
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
bicicleta4.txt
( |cross racer| |amarillo patito| 2 )
+ ciclos!!!
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( |cross racer| |amarillo patito| 2 )
Si no ponemos separador, toma por defecto fin de línea
Y nos faltó ...
Y no vimos ... pero pueden investigar:
cin
archivo.good()
archivo.peek()
archivo.MASOPCIONES
Streams. Manipulación de archivos. Clase viernes 12/06/2009
¿Preguntas?
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Top Related