Entrada y salida de datos en C y C++



Documentos relacionados
PROGRAMACIÓN ORIENTADA A OBJETOS

Contenidos. Archivos en C++ Archivos en C++ Introducción

Uso de archivos en C++

Prof. Dr. Paul Bustamante

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );

Examen escrito de Programación 1

ALMACENAMIENTO PERSISTENTE DE DATOS

Entrada y Salida vía Archivos

Arrays y Cadenas en C

Matemática de redes Representación binaria de datos Bits y bytes

Se guardan en archivos con extencion c y los cabezales con extension h

Vectores. 27/05/05 Programación Digital I 1

Clase 4: Un poco más de Python

1 Estructura básica de un programa C++

Tema: Sobrecarga de Operadores.

7. Manejo de Archivos en C.

Preliminares. Tipos de variables y Expresiones

PROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Introducción al laboratorio de Programación I

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Programación 1 Tema 13. Entrada y salida de datos

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN

Contenido. Capítulo 1. Introducción a lenguaje C 1

UNIDADES DE ALMACENAMIENTO DE DATOS

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Tema: Clases y Objetos en C++.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

LENGUAJE. Tema 1 - Introducción

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Computación archivos

Curso PHP Módulo 1 R-Luis

Tema 2: La clase string

1. Gestión de E/S. 2. Clases básicas. 3. E/S estándar. 4. Manejo de ficheros. Entrada/Salida en C++

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM

Introducción a la Programación 11 O. Humberto Cervantes Maceda

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0

GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C

FACULTAD DE INGENIERÍA

1 ELEMENTOS BASICOS DEL LENGUAJE

Trataremos los principales aspectos de las operaciones de E/S en archivos.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Prof. Dr. Paul Bustamante

Tema: Herencia Simple y Múltiple en C++.

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

Programación en C++/Funciones

Programación Estructurada

Introducción al tipo de dato ARRAY

Examen Principios de Programación Febrero 2012

TP 0 - Implementación de codificador y estructura básica. BitsTranslation. 1.0

Para dudas, comentarios escribe a: C BASICO

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Tema 3 Elementos básicos de programación

Tema: Arreglos de Objetos en C++.

Ampliación de Sistemas Operativos Trabajo voluntario Tema 1 Francisco Charte Ojeda ENTRADA/SALIDA EN C++

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

El lenguaje de Programación C. Fernando J. Pereda

Formato para prácticas de laboratorio

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Códigos Binarios de Representación de Datos

Tipos primitivos y clases de interés

El lenguaje C: Elementos básicos del lenguaje

Capítulo 9. Archivos de sintaxis

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

Clases y Objetos. Informática II Ingeniería Electrónica

Sobre la lectura y escritura de datos en FORTRAN.

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

Diseño de formularios


Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Roberto Quejido Cañamero

Funciones en C. En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Entrada/Salida en C++

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Operación de Microsoft Word

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Mi primer proyecto en Dev-C++

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

SOLUCION EXAMEN junio 2006

Instructivo de Microsoft Excel 2003

Prof. Dr. Paul Bustamante

Introducción al lenguaje de programación java

CONCEPTOS BASICOS DEL LENGUAJE JAVA

FUNDAMENTOS BÁSICOS DE PROGRAMACIÓN EN C++

Tema 9. Vectores y Matrices

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

Bases de Datos en Visual FoxPro. Administrador de proyectos

LAS CONSULTAS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

Transcripción:

Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida Pág. 1

1. Introducción general Este material debe utilizarse como complemento a la asistencia a las clases de teoría de la asignatura y sirve principlamente como guía general de estudio y no como referencia exahustiva de los temas tratados, para los cuales debe recurrirse a la bibliografía indicada: El Lenguaje de Programación C, 2ª edición, Brian Kernighan y Dennis Ritchie, Editorial Pearson ISBN 9688802050 El Lenguaje de Programación C++, 1ª edición, Bjarne Stroustrup, Editorial Pearson, ISBN 847829046X 2. Entrada/Salida en C 1. Introducción El lenguaje C (y consecuentemente también C++) dispone de una librería para entrada salida: Standard Input-Output Library que permite ejecutar operaciones básicas de E/S. Las declaraciones requeridas por esta librería están contenidas en el archivo de encabezado stdio.h, que debe incluírse con la directiva correspondiente: #include <stdio.h> Este archivo define tres streams estándar: stdin, stdout y stderr, que utilizan entrada y salida basada en caracteres y son abiertas automáticamente. Por defecto stdin y stderr están direccionadas a la pantalla, y stdin al teclado. 2. E/S básica en C Estas operaciones se hacen mediante las funciones getchar() y putchar(): int getchar() lee un carácter desde stdin int putchar(char c) escribe el carácter 'c' en stdout Se dispone también de otras funciones, tales como getline(), etc. 3. E/S formateada en C Las funciones printf() y scanf() permiten aplicar formato a los datos de E/S, como por ejemplo, cantidad de decimales, justificación de texto, conversión a mayúsculas/minúsculas, numeración hexadecimal, etc. Ambas funciones toman al menos dos argumentos (pueden ser mas): 1. La cadena de formato 2. Los datos a enviar a la salida, en el caso de printf() o a recibir de la entrada, en el caso de scanf() La cadena de formato es un literal encerrado ente comillas dobles ( y ) precedida de un símbolo '%'. La tabla siguiente muestra especificadores frecuentemente utilizados: Especificador Significado c i,d x,x Un carácter (char) Número entero (int o double) Número hexadecimal (0-9 A-F) Informática II Entrada/Salida Pág. 2

Especificador s Cadena de caracteres (char *) f m.n Significado Número de punto flotante (float o double) M cifras enteras y n decimales - Ajuste de texto a la izquierda k '\n' '\t' '\0' Número de cifras de un número entero La cadena de formato puede incluir literales y caracteres especiales tales como Nueva línea Tabulación Carácter nulo (fin de cadena) 4. Ejemplos printf() printf( %-1.3f\n, 3.1415927); 3.141 printf( IVA: 21,5%%\n ); IVA: 21,5% 5. Ejemplos scanf() En esta función, el primer argumento es la cadena de formato, al igual que en printf(), y el segundo la dirección de las variables que recibirán los datos: 6. char string[80]; scanf(``%s'',string); 3. Entrada/salida con Streams en C++ 1. Definición: un stream en C++ es un objeto mediante el cual un programa puede insertar o extraer datos utilizando los operadores de inserción << y de extracción >> o funciones. Los datos pueden ser tipos fundamentales (int, char, double, etc.), o cadenas de caracteres. 2. Streams predefinidos Por defecto, la salida asignada a un programa es la pantalla, y en C++ está representada por el stream cout a la que se denomina salida estándar. Las definiciones necesarias para su uso están contenidas en el archivo de encabezamiento iostream. Caracteres, números y variables pueden insertarse en cout mediante el operador de inserción <<. Ejemplo: cout << Hola! ; cout << 120; cout << x; // muestra una cadena de texto en la pantalla // muestra un número en pantalla // muestra el valor de la variable x en pantalla Informática II Entrada/Salida Pág. 3

El operador de inserción << puede concatenarse: cout << Nombre: << nom << Edad: << ed; Suponiendo que la variable nom contenga la cadena Carla y la variable ed contenga el entero 23, la salida en pantalla será: Nombre: Carla Edad: 23 Para separar las líneas en pantalla pueden usarse dos métodos: agregar \n o usar el manipulador endl: cout << Nombre: << nom << \n << Edad: << ed; o cout << Nombre: << nom << endl << Edad: << ed; En ambos casos la salida será: Nombre: Carla Edad: 23 La entrada estándar de un programa C++ es el teclado, y está representado por el stream cin. El operador de extracción >> permite obtener caracteres o números desde el teclado: int temperatura; cin >> temperatura; Es importante recordar que cin sólo procesa la entrada desde el teclado una vez que el usuario pulsó la tecla Enter. El tipo de la variable que recibe datos determina cómo se interpretan los datos ingresados por teclado. El operador de inserción puede concatenarse, por ejemplo: cin >> a; cin >> b; es equivalente a: cin >> a >> b; La librería iostream provee dos streams predefinidas mas: cerr, que es la salida estándar de errores y clog, la salida estándar de registro o logging. 3. Streams especiales: archivos C++ provee tres streams específicas para leer y escribir caracteres desde y hacia un archivo en disco: 1. ifstream para leer caracteres desde un archivo 2. ofstream para escribir caracteres en un archivo 3. fstream para leer y escribir caracteres en un archivo Estas clases derivan de istream y ostream, las clases básicas de entrada/salida definidas en iostream, y están especialmente diseñadas para interactuar con archivos en almacenamiento no volátil (disco, pen drive, etc.). 4. Utilización Un ejemplo sencillo de uso de ofstream: Informática II Entrada/Salida Pág. 4

#include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("salida.txt"); myfile << "Escribiendo en archivos.\n"; myfile.close(); return 0; } Este programa crea (o abre, si existe) un archivo llamado salida.txt y escribe una cadena de texto en su interior. 5. Apertura de un archivo Para utilizar un objeto ifstream, ofstream o fstream debe llevarse a cabo la vinculación del stream al archivo físico mediante una operación de apertura mediante la función open(), que toma dos argumentos: nombre del archivo y modo de apertura. El primer parámetro es una cadena de caracteres (const char *) terminada en '\0' y opcionalmente el segundo, que una constante que determinará el uso que pretendemos hacer del archivo según la siguiente tabla: ios::in Modo ios::out ios::binary ios::app ios::trunc Significado El archivo se abre para operaciones de lectura (sólo extracción de caracteres) El archivo se abre para operaciones de escritura (sólo inserción de caracteres) El archivo se abre en modo binario (su contenido no es texto sino bytes) Las operaciones de inserción tienen lugar al final del archivo, esto es, preservando su contenido inicial Si el archivo abierto existe, se descarta la totalidad de datos que contiene al momento de la apertura Los modos pueden combinarse utilizando el operador OR ' ': ofstream arch; arch.open( datos.txt, ios::out ios::app ios::binary); En este caso, datos.txt se abre para escribir datos binarios, preservando su contenido actual. En todos los casos, la función is_open() permite verificar si un archivo está disponible para operar sobre el: if( arch.is_open(){ // se puede operar } else cout << Archivo cerrado ; 6. Cierre de un archivo Para garantizar que las operaciones realizadas efectivamente se reflejen en el archivo Informática II Entrada/Salida Pág. 5

en disco, cuando se termina de trabajar sobre él debe ejecutar una operación de cierre mediante la función close(): arch.close(); 4. Manipuladores La librería estándar iostream provee un conjunto de funciones llamadas manipuladores que, utilizados en conjunto con los operadores << y >> permiten modificar el comportamiento de los streams. La tabla siguiente muestra algunas frecuentemente utilizadas: Manipulador endl Nueva línea (Enter) Propósito ends Inserta un carácter de fin de cadena (\0) flush skipws uppercase Vacía el buffer de un stream Salta espacios y tabulaciones Transforma a mayúsculas Informática II Entrada/Salida Pág. 6