Modos abiertas en c ++

Esta tabla muestra los diferentes modos en C ++ que son posibles cuando se abre un archivo. Sin embargo, es necesario responder a tres preguntas básicas cada vez que se abre un archivo:

  • ¿Quieres leer el archivo o escribir en el archivo? Usar ifstream leer y ofstream para la escritura. Si tiene intención de tanto escribir y leer desde el mismo archivo, utilice el fstream y de modo ajustado en in | out, pero la buena suerte - es mucho mejor escribir a un archivo completo y luego cerrarlo y volver a abrirlo para leer como un objeto independiente.

  • Si usted está escribiendo al archivo y ya existe, ¿desea agregar el contenido existente (en cuyo caso, abierto con comió set) o truncar el archivo y empezar de nuevo (en cuyo caso el uso trunc)?

  • ¿Estás leyendo o escribiendo texto o datos binarios? Ambas cosas ifstream y ofstream por defecto en modo texto. Usar binario modo si usted está leyendo o escribiendo datos en bruto, sin texto.

Las constantes que controlan cómo se abren los archivos
BanderaSignificado
ios_base :: aplicaciónTratar de EOF antes de cada escritura.
ios_base :: comióTratar de EOF inmediatamente después de abrir el archivo, si itexists.
ios_base :: binariaAbrir el archivo en modo binario (alternativa es el modo de texto).
ios_base :: enAbrir el archivo de entrada (implícita para istream).
ios_base :: caboAbrir el archivo de salida (implícita para ostream).
ios_base :: truncTruncar archivo, si es que existe (por defecto para ostream).

La principal diferencia entre el modo binario y texto radica en la forma en que se manejan los saltos de línea. El sistema operativo Unix estaba escrito en los días en que las máquinas de escribir eran aún de moda (cuando se llamaba " a escribir " en lugar de " mecanografía "). Unix terminó frases con un salto de línea seguido de un retorno de carro.

Sistemas operativos posteriores vieron ninguna razón para seguir usando dos caracteres para terminar una frase, pero no pudieron ponerse de acuerdo sobre qué personaje de usar. Algunos utilizan el retorno de carro, otros utilizaron el salto de línea, salto de línea que ahora se denomina. El estándar de C ++ es la única nueva línea.

Cuando un archivo se abre en modo de texto, la biblioteca de C ++ convierte el carácter de nueva línea única en lo que es apropiado para su sistema operativo en la salida, si se trata de un retorno de carro más avance de línea, un solo retorno de carro, un avance de línea, o algo completamente distinto. Se realiza la conversión opuesta al leer un archivo. La biblioteca de C ++ hace ningún tipo de conversiones para un archivo abierto en modo binario.

Utilice siempre el modo binario al manipular un archivo que no está en formato legible. De lo contrario, si un byte en el flujo de datos sólo pasa a ser el mismo que un retorno de carro o un avance de línea, el archivo I / O biblioteca modificarlo.




» » » » Modos abiertas en c ++