Entrada / Salida Streams Archivos 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 básicos Repaso de clases Entrada / Salida por consola (cin / cout) Entrada / Salida por archivo (librería fstream) Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Repaso de tipos int double Char String Streams. Manipulación de archivos. Clase miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
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 miércoles 09/06/2010
Un gran poder conlleva una gran responsabilidad ... Salida Un gran poder conlleva una gran responsabilidad ... Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida Ejercicio: Hacer un programa que muestre por pantalla los primeros mil números naturales. ... tienen 5 min. por reloj. Tipear los 1000 número me va a llevar más de 5 min. ... qué era eso de los ciclos? Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Objetos Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Clases Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Objetos Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales Streams. Manipulación de archivos. Clase miércoles 09/06/2010
bicicleta.h Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales Streams. Manipulación de archivos. Clase miércoles 09/06/2010
bicicleta.cpp Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales Streams. Manipulación de archivos. Clase miércoles 09/06/2010
main.cpp Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales Streams. Manipulación de archivos. Clase miércoles 09/06/2010
main.cpp Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida Ejercicio: Agregar al tipo Bicicleta los métodos públicos string modelo() const; string color() const; int ruedas() const; void mostrarsePorPantalla() const; ... tienen 7 min. por reloj. No se me cae una idea ... Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida ¿Qué pasa si utilizo ... Bicicleta b1(“paseo”,”rojo”,2); cout << b1; Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida ¿Qué pasa si utilizo ... Bicicleta b1(“paseo”,”rojo”,2); cout << b1; error: no match for ‘operator<<’ in ..... Streams. Manipulación de archivos. Clase miércoles 09/06/2010
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 miércoles 09/06/2010
Salida Ejercicio: implementar operator << en Bicicleta ... tienen 3 min. por reloj. No se me cae una idea ... Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida cout b1 bicicleta.h std::ostream & operator<<(std::ostream & os,const Bicicleta & b); Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida NUEVO NUEVO Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida Callejón sin Salida Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Entrada ( cross amarillo 2 ) bicicleta4.txt Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Salida Streams. Manipulación de archivos. Clase viernes 12/06/2009
Entrada ( cross amarillo 2 ) bicicleta4.txt Por qué levanta “cross” y no levanta “cross amarillo” ? Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Entrada ( cross amarillo 2 ) (cross racer amarillo 2) bicicleta4.txt ( 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) Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Entrada ( |cross racer| |amarillo patito| 2 ) + ciclos!!! bicicleta4.txt ( |cross racer| |amarillo patito| 2 ) + ciclos!!! Streams. Manipulación de archivos. miércoles 09/06/2010
Entrada ( |cross racer| |amarillo patito| 2 ) bicicleta4.txt Si no ponemos separador, toma por defecto fin de línea Streams. Manipulación de archivos. Clase miércoles 09/06/2010
Y nos faltó ... Y no vimos ... pero pueden investigar: cin archivo.good() archivo.peek() archivo.MASOPCIONES Streams. Manipulación de archivos. Clase miércoles 09/06/2010
¿Preguntas? Streams. Manipulación de archivos. Clasemiércoles 09/06/2010