Hogar Finanzas personales Marcando los ios Flags en C ++ - Dummies

Marcando los ios Flags en C ++ - Dummies

Video: Descodificación del sobrepeso por Marta Menéndez 2025

Video: Descodificación del sobrepeso por Marta Menéndez 2025
Anonim

Cuando abre un archivo construyendo una instancia ofstream o ifstream, puede modificar la forma en que se abrirá el archivo suministrando lo que se denomina flags. En términos informáticos, una marca es simplemente un pequeño elemento cuya presencia o falta de presencia le dice a una función cómo hacer algo. Con las clases ofstream y ifstream, la función en cuestión es el constructor.

Una bandera se ve como ios:: aplicación si está utilizando un compilador que no es totalmente compatible con ANSI, o se parece a ios_base:: aplicación si está utilizando una que es totalmente compatible con ANSI. Esta bandera en particular significa que desea escribir en un archivo, pero desea agregar a cualquier información existente que ya esté en un archivo. Usted suministra esta bandera como un argumento del constructor para ofstream, como en cualquiera de los siguientes ejemplos:

del flujo de salida ("AppendableFile. Txt", ios:: app); archivo de salida ofstream ("AppendableFile. txt", ios_base:: app);

Puede ver que la bandera se agrega como un segundo parámetro al constructor. Existen otros indicadores además de la aplicación, y puede combinarlos usando el operador o, |. Por ejemplo, un indicador es ios:: nocreate (que no está incluido en los compiladores más nuevos).

Esto significa "solo abra el archivo si ya existe". "Es decir, no crees el archivo si no existe". (Recuerde, ofstream crea un archivo si aún no existe). Si el archivo no existe, la apertura fallará, y cuando llame falle, obtendrá un verdadero .

El indicador ios:: nocreate es útil con ios:: app. Juntos, estos significan abrir un archivo existente y anexarlo . Es decir, los dos juntos funcionarán solo si el archivo ya existe y la llamada abrirá el archivo para una operación de adición. Si el archivo aún no existe, el archivo no se creará. Aquí hay una llamada de muestra:

ofstream outfile ("… / MyFile. Txt", ios:: app | ios:: nocreate); if (outfile. fail ()) {cout << "no se pudo abrir el archivo!" << endl; return 0;} outfile << "hola" << endl; archivo externo cerca();

Si MyFile. txt no existe cuando ejecuta este código, recibe el mensaje ¡No se pudo abrir el archivo! Pero si MyFile. txt existe, la aplicación lo abre, agrega la cadena Hola a él y finalmente lo cierra.

Resulta que el indicador nocreate no está disponible en la nueva Biblioteca estándar. Gorrón. Por lo tanto, el código solo funciona si está utilizando una versión anterior de la biblioteca. Al usar el Código:: Bloquea el compilador, aparece el siguiente mensaje de error:

error: 'nocreate' no es miembro de '; std:: ios '

Sin embargo, querrás probar si tu compilador particular incluye una biblioteca que admite ios:: nocreate.Su compilador puede admitirlo de todos modos, incluso si incluye la nueva Biblioteca estándar. Como alternativa a ios:: nocreate, puede usar el siguiente código (que se encuentra en el ejemplo FileOutput02):

ifstream infile ("… / MyFile. Txt"); if (infile. fail ()) {cout << "no se pudo abrir el archivo!" << endl; return 0;} infile. cerca(); ofstream outfile ("… / MyFile. txt", ios:: aplicación); archivar << "hi" << endl; archivo externo cerca();

En este caso, comienzas por intentar abrir el archivo para leerlo. Si el archivo no existe, no puede leer de él y el código sale con un mensaje de error. Si el código puede leer del archivo, vuelve a abrir el archivo para escritura. Esta es una solución engorrosa, pero funciona.

La siguiente es una lista de los indicadores disponibles. En primer lugar, aquí están los de ios, en caso de que esté utilizando un compilador que no sea completamente compatible con ANSI:

  • ios:: aplicación: este indicador significa que desea abrir un archivo y anexarlo.

  • ios:: in: incluya esta marca si desea leer desde un archivo.

  • ios:: out : Incluya esta bandera si desea escribir en un archivo.

  • ios:: trunc : Incluya esta bandera si desea borrar el contenido del archivo antes de escribir en él. Es lo opuesto a append, y también es el predeterminado si no incluye específicamente ios:: app.

  • ios:: nocreate : Utilice este indicador si desea asegurarse de que el archivo no se creará si no existe, lo que provocará que el archivo no se abra.

  • ios:: noplaceplace : Esta bandera es lo opuesto a nocreate. Use esta bandera si solo desea crear un nuevo archivo. Si usa esta bandera y el archivo ya existe, el archivo no se abrirá, y esa falla devolverá verdadero .

Los compiladores que cumplen con ANSI no son compatibles con el indicador ios:: noreplace tampoco. En este caso, puede usar lo contrario de la corrección para el indicador ios: nocreate, como se muestra aquí (y se encuentra en el ejemplo FileOutput03):

ifstream infile ("… / MyFile. Txt"); if (! infile. fail ()) {cout << "¡el archivo ya existe!" << endl; return 0;} infile. cerca(); ofstream outfile ("… / MyFile. txt"); archivar << "hi" << endl; archivo externo cerca();

En este caso, el código intenta abrir el archivo para su lectura. Si el archivo existe, el código muestra un mensaje de error y sale. De lo contrario, el código crea un nuevo archivo y escribe en él.

¡Los siguientes indicadores están disponibles en un compilador que cumple absolutamente con ANSI!

  • ios:: ate: use este indicador para ir al final del archivo después de abrirlo. Normalmente, usa este indicador cuando desea agregar datos al archivo.

  • ios_base:: binary: use este indicador para especificar que el archivo que está abriendo tendrá datos binarios, es decir, datos que no representan cadenas de caracteres.

  • ios_base:: in: especifique este indicador cuando quiera leer desde un archivo.

  • ios_base:: out: incluya esta marca cuando desee escribir en un archivo.

  • ios_base:: trunc: incluya esta marca si desea borrar el contenido de un archivo antes de escribir en él.

  • ios_base:: aplicación: incluya esta marca si desea agregar al archivo. Es lo opuesto a trunc, es decir, la información que ya está en el archivo cuando la abra permanecerá allí.

¿Por qué necesitas una bandera y una bandera de salida? Parece que la computadora debe saber si está escribiendo en un archivo o leyendo de él, dependiendo (respectivamente) de si usa stream o ifstream. La respuesta a por qué tiene una bandera de entrada y una bandera de salida es que hay otras clases disponibles además de corriente y corriente continua.

Los compiladores que aún no admiten completamente el estándar ANSI tienen una clase genérica en sus bibliotecas llamada fstream. Los compiladores que cumplen con ANSI tienen en sus bibliotecas una clase de plantilla llamada basic_filebuf y una clase llamada filebuf. Si usa estas clases, puede usar las banderas de entrada y salida.

Marcando los ios Flags en C ++ - Dummies

Selección del editor

Evitar Brute-Force Solutions con Algoritmos: dummies

Evitar Brute-Force Solutions con Algoritmos: dummies

Una solución de fuerza bruta es aquella en la que intentas cada posible respuesta, una a la vez, para encontrar la mejor respuesta posible. Es minucioso, esto es cierto, pero también desperdicia tiempo y recursos en la mayoría de los casos. Probando cada respuesta, incluso cuando es fácil probar que una respuesta en particular no tiene ninguna posibilidad de ...

10 Problemas algorítmicos Sin embargo, para resolver - dummies

10 Problemas algorítmicos Sin embargo, para resolver - dummies

Los algoritmos han existido desde hace siglos, por lo que uno pensaría que los científicos habrían descubierto y resuelto cada algoritmo por ahora. Desafortunadamente, lo opuesto es verdad. La resolución de un algoritmo en particular a menudo presenta algunas preguntas más que el algoritmo no resuelve y que no parecían aparentes hasta que alguien llegó a la solución. Algoritmos ...

Fundamentos de las estructuras de árbol utilizadas en algoritmos: variables ficticias

Fundamentos de las estructuras de árbol utilizadas en algoritmos: variables ficticias

Una estructura de árbol se parece mucho al objeto físico de el mundo natural. El uso de árboles le ayuda a organizar los datos rápidamente y encontrarlos en un tiempo más corto que con otras técnicas de almacenamiento de datos. Normalmente, los árboles se utilizan para buscar y ordenar rutinas, pero también tienen muchos otros propósitos. Construir un árbol funciona mucho ...

Selección del editor

Insertar contenido en una diapositiva de PowerPoint en Office 2011 para Mac: dummies

Insertar contenido en una diapositiva de PowerPoint en Office 2011 para Mac: dummies

La cinta en PowerPoint 2011 para Mac le permite agregar contenido usando las opciones de la pestaña Inicio, en el grupo Insertar. Cada vez que agrega algo a una diapositiva, se coloca en una capa encima de todos los objetos existentes en la diapositiva. Insertar elementos de texto en diapositivas de PowerPoint Haga clic en la pestaña Inicio de la cinta y ...

Office 2011 para Mac: Agregue clips de audio a presentaciones de PowerPoint - Dummies

Office 2011 para Mac: Agregue clips de audio a presentaciones de PowerPoint - Dummies

Mejore su PowerPoint 2011 para presentaciones de Mac con clips de audio. Usar el sonido y la música es una excelente manera de atraer a tu audiencia. En PowerPoint 2011 para Mac, puede elegir entre dos formas de activar el cuadro de diálogo Insertar audio: Desde el Explorador de medios: use la pestaña Audio y arrastre desde el navegador hasta PowerPoint. ...

Office 2011 para Mac: animar clips de audio o películas en diapositivas de PowerPoint - Dummies

Office 2011 para Mac: animar clips de audio o películas en diapositivas de PowerPoint - Dummies

Incluir medios en su secuencia de animación es una gran idea. En PowerPoint 2011 para Mac, ya no tiene restricciones para que las películas se reproduzcan en la parte superior. Ahora las películas se comportan bien en su propia capa y se pueden animar como cualquier otro objeto. Las películas pueden incluso superponerse y seguir trayectorias de movimiento mientras juegan. Solo recuerda ...

Selección del editor

Cómo promocionar su Vlog (Blog de video): dummies

Cómo promocionar su Vlog (Blog de video): dummies

Después de que haya creado su video contenido, es hora de promover ese contenido y, con suerte, atraer a una nueva audiencia a su blog o canal de vlog. Si ya has comenzado a bloguear, el primer lugar para comenzar es tu propio blog. Incluso si elige alojar su vlog en una plataforma adicional como YouTube, ...

Cómo sacar provecho de mamá Blogging sin vender - tontos

Cómo sacar provecho de mamá Blogging sin vender - tontos

Vender es un término usado para comprometer su integridad, principios o moral para ganar dinero o éxito. El problema es que si todos tuvieran los mismos principios y la misma definición de integridad, no habría mucha necesidad de diferentes partidos políticos o religiones. Se puede acusar a las personas de venderse si simplemente hacen cosas como ...

Cómo usar correctamente las palabras clave para su comunidad en línea - Dummies

Cómo usar correctamente las palabras clave para su comunidad en línea - Dummies

Cuando tenga una buena idea de los tipos de palabras clave para usar en su comunidad en línea, es hora de escribir el contenido para que se vea natural. Demasiadas personas usan palabras clave libremente en torno a sus publicaciones de blog, artículos web, páginas Acerca de y otro contenido, que parece tonto e incorrecto. Aunque usar palabras clave es bueno ...