Programación en c ++ con la biblioteca corrientes

El documento estándar ANSI C ++ proporciona una biblioteca completa de las clases que se encargan de los arroyos y de entrada / salida general. Afortunadamente, la mayoría de las clases en la biblioteca estándar están disponibles con casi todos los compiladores disponibles en la actualidad.

Conseguir el archivo de cabecera derecha

La biblioteca incluye varias clases corrientes que hacen la vida mucho más fácil. También cuenta con varias clases que pueden hacer su vida más complicada, sobre todo porque se trata de clases auxiliares que es probable que no suele utilizar. Estas son dos de las clases más comunes que va a utilizar. (Y recuerde: Estas clases están disponibles en casi todas las implementaciones de C ++, si la completa biblioteca estándar está presente o no).

  • ifstream: Se trata de una corriente se instancia si desea leer desde un archivo.

  • ofstream: Se trata de una corriente se instancia si desea escribir en un archivo.

    Video: Bloque C Medio 2.2: Crear Libreria propia

Antes de poder utilizar el ifstream y ofstream clases, que incluyen el archivo de cabecera adecuada. Aquí es donde las cosas se ponen feas. En los primeros días de C ++, la gente utiliza el archivo de cabecera. Pero en algún lugar a mediados de la década de 1990, la gente comenzó a usar la biblioteca de plantillas estándar (y a finales de 1990, la biblioteca estándar de C ++), ambos de los cuales se requieren para incluir (sin el .marido extensión).

La plantilla de la biblioteca estándar y la biblioteca estándar ponen todas sus clases y objetos en el interior del std espacio de nombres. Por lo tanto, cuando se desea utilizar un elemento de la biblioteca corrientes, debe

  • Anteponer su nombre con std, como en este ejemplo:

    std :: archivo_salida ofstream ("MyFile.txt") -
  • incluir una utilizando Directiva antes de líneas en los que utilice las clases de flujo, como en este ejemplo:

utilizando archivo de salida espacio de nombres std-ofstream ("MyFile.txt") -

Por defecto, el compilador GCC reconoce automáticamente la std espacio de nombres (que es como si tuviera una línea el uso de espacio de nombres STD aun cuando no lo hace).

Si está utilizando un compilador GCC distinta, siga su #incluir líneas con la línea de utilizando namespacestd-. A continuación, puede escribir todo el código de ejemplo tal y como son, incluyendo los ejemplos corriente, sin necesidad de poner std :: antes de cada clase o un objeto de la librería estándar.

Al abrir un archivo

Ir al procesador de texto, seleccione Archivo → Abrir, y el tipo MyGreatChapter.doc.

Vaya. Usted obtiene un mensaje de error. no existe ese archivo.

Oh, es cierto; usted no ha escrito todavía. En su lugar, crear un nuevo documento en el procesador de texto, tipo 800 páginas frescas en el transcurso de una noche de descanso, y luego (cuando esté todo terminado) guardar el archivo. Darle el nombre MyGreatChapter.doc. A continuación, apague el procesador de textos, pasar el rato en la piscina, presumir a sus amigos acerca de las nuevas novelas que escribe el usuario, e ir a la cama.

A la mañana siguiente, abra el documento. Esta vez es que existe, por lo que el procesador de textos se abre y lo lee en la información.

Como se puede ver, hay dos cuestiones se presentan en la apertura de un archivo:

  • Crear un nuevo archivo

  • Abrir un archivo existente

    Video: Programación en c++ Libreria string

Aquí es donde la vida se vuelve un poco extraño: algunos sistemas operativos tratan a estos dos elementos como una sola entidad. La razón es que cuando se crea un nuevo archivo, normalmente se desea iniciar de inmediato su uso, lo que significa que desea crear un nuevo archivo y abrirlo. Y por lo que el proceso de creación de un archivo a menudo se inserta directamente en el proceso de abrir un archivo.

Y cuando se abre un archivo existente que desea escribir en, usted tiene dos opciones:

  • Borrar el contenido- actual, entonces escribir en el fichero.

  • Mantener el contenido existente y escribir su información al final del archivo. Se llama añadiendo información en un archivo.

los FileOutput01 código de ejemplo que muestra cómo abrir un archivo nuevo, escribir alguna información a la misma, y ​​luego cerrarlo. (Pero espere, aún hay más: Esta versión funciona si tiene los compiladores más reciente compatible con ANSI o los de mayor edad)

#incluir #incluir using namespace std-int main () {archivo_salida ofstream ("../MyFile.txt") -outfile lt; lt; "Hola" lt; lt; endl-outfile.close () - retorno 0-}

El corto aplicación abre un archivo llamado MyFile.txt. (La parte “../” de la ruta del archivo coloca el archivo en el directorio padre para el ejemplo, que es la carpeta Chapter01.) Esto se logra mediante la creación de una nueva instancia de ofstream, que es una clase para escribir en un archivo.

Video: Tutorial de C++ en Español # 43 - Crear una Biblioteca

La siguiente línea de código escribe la cadena "Hola" en el fichero. Se utiliza el operador de inserción, gt; gt;, Tal como cout hace. De hecho, ofstream se deriva de la misma clase que cout es una instancia de, y por lo que significa todas las cosas que puede hacer con cout también se puede hacer con el archivo! ¡Guauu!

Cuando haya terminado de escribir en el archivo, cerrarlo mediante una llamada al cerca función miembro. ¡Esto es importante!

Si desea abrir un archivo existente y añadir a ello, se puede modificar ligeramente el anuncio. Todo lo que hacer es cambiar los argumentos que se pasan al constructor de la siguiente manera:

ofstream archivosalida ("MyFile.txt", Ios_base :: app) -

los ios :: aplicación artículo es una enumeración dentro de una clase llamada ios, y el ios_base :: aplicación artículo es una enumeración en la clase llamada ios_base.

los ios clase es la clase base de la que el ofstream clase se deriva. los ios clase también sirve como una clase base para ifstream, que es para la lectura de archivos.

Para los nuevos compiladores, la ios_base clase es una base para ofstream y ifstream. (Un par de clases están en el medio. ofstream es una clase de plantilla derivado de una clase de plantilla llama basic_ofstream, que se deriva de una clase de plantilla llamado basic_ios, que se deriva de la clase ios_base.)

También puede leer desde un archivo existente. Esto funciona igual que la cin objeto. los FileRead01 ejemplo mostrado abre el archivo creado anteriormente y lee la cadena de nuevo. En este ejemplo se utiliza el directorio padre de nuevo como un lugar común para crear, actualizar y leer archivos.

#incluir #incluir #incluir using namespace std-int main () {string palabra-ifstream infile ("../MyFile.txt")-en archivo gt; gt; palabra cout lt; lt; palabra lt; lt; endl-infile.close () - retorno 0-}

Cuando se ejecuta esta aplicación, la cadena escrito anteriormente al archivo - "Hola," - aparece en pantalla. ¡Funcionó! Se leyó la cadena desde el archivo!

Artículos Relacionados