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 03/11/2010
Repaso de tipos int double Char String Streams. Manipulación de archivos. Clase miércoles 03/11/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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida #include // 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 03/11/2010
Salida Streams. Manipulación de archivos. Clase miércoles 03/11/2010 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 miércoles 03/11/2010 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 miércoles 03/11/2010
Clases Streams. Manipulación de archivos. Clase miércoles 03/11/2010
Objetos Streams. Manipulación de archivos. Clase miércoles 03/11/2010 Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales
bicicleta.h Streams. Manipulación de archivos. Clase miércoles 03/11/2010 Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales
bicicleta.cpp Streams. Manipulación de archivos. Clase miércoles 03/11/2010 Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales
main.cpp Streams. Manipulación de archivos. Clase miércoles 03/11/2010 Atributos - Modelo - Color - Cantidad de ruedas Métodos - Iguales
main.cpp Streams. Manipulación de archivos. Clase miércoles 03/11/2010 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() const; void mostrarsePorPantalla() const;... tienen 7 min. por reloj. Streams. Manipulación de archivos. Clase miércoles 03/11/2010 No se me cae una idea...
Salida ¿Qué pasa si utilizo... Bicicleta b1(“paseo”,”rojo”,2); cout << b1; Streams. Manipulación de archivos. Clase miércoles 03/11/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 03/11/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 03/11/2010
Salida Ejercicio: implementar operator << en Bicicleta... tienen 3 min. por reloj. Streams. Manipulación de archivos. Clase miércoles 03/11/2010 No se me cae una idea...
Salida cout b1 bicicleta.h std::ostream & operator<<(std::ostream & os,const Bicicleta & b); Streams. Manipulación de archivos. Clase miércoles 03/11/2010
Salida Streams. Manipulación de archivos. Clase miércoles 03/11/2010 NUEVO
Salida Streams. Manipulación de archivos. Clase viernes 12/06/2009
Salida Streams. Manipulación de archivos. Clase miércoles 03/11/2010 Callejón sin Salida
bicicleta4.txt Entrada Streams. Manipulación de archivos. Clase miércoles 03/11/2010 ( cross amarillo 2 )
Salida Streams. Manipulación de archivos. Clase viernes 12/06/2009
bicicleta4.txt Entrada Streams. Manipulación de archivos. Clase miércoles 03/11/2010 ( cross amarillo 2 ) Por qué levanta “cross” y no levanta “cross amarillo” ?
bicicleta4.txt Entrada Streams. Manipulación de archivos. Clase miércoles 03/11/2010 ( 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. miércoles 03/11/2010 bicicleta4.txt ( |cross racer| |amarillo patito| 2 ) + ciclos!!!
bicicleta4.txt Entrada Streams. Manipulación de archivos. Clase miércoles 03/11/2010 ( |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 miércoles 03/11/2010
¿Preguntas? Streams. Manipulación de archivos. Clasemiércoles 03/11/2010