¿Cómo utilizar diferentes modos ifstream en c++?
Pregunta
- Según la referencia, si uso
ifstream infile ( "test.txt" , ifstream::in );
va aAllow input operations on the stream.
Pero ¿cuáles son algunos de los ejemplos de "operaciones de entrada"? - Es
ifstream infile ( "test.txt" , ifstream::in | ifstream::binary );
¿La sintaxis correcta para usar múltiples indicadores? - ¿Hará alguna diferencia si cambio?
ifstream::
aiso::
?
Gracias
Solución
- Según la referencia, si uso ifstream infile (" test.txt ", ifstream :: in); Permitirá entrada operaciones en la corriente. Pero que son algunos de los ejemplos de la entrada & operaciones " ;?
Lectura de un archivo que significaría todo lo que una secuencia de entrada puede soportar. Ver istream
funciones miembro. Por lo general, puede realizar tanto lecturas formateadas (usando >>
) como no formateadas (usando read
). Recuerde que ifstream
es una especialización de la plantilla basic_ifstream
para el tipo char
. Dependiendo de sus necesidades, digamos que para leer el archivo codificado UTF-16, es posible que tenga que usar una especialización diferente (wifstream
) o incluso usar un entorno local especial (lea esto para obtener más información sobre las configuraciones regionales).
- Es ifstream infile (" test.txt ", ifstream :: in | ifstream :: binary); la sintaxis correcta para usar múltiples banderas?
Sí.
- ¿Hará alguna diferencia si cambio ifstream :: a iso ::?
No.
Otros consejos
Las operaciones de flujo son extraction <<
y insertion >>
.Cuando haces lo siguiente suponiendofile
es de fstream
tipo:
file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)
También podrías lidiar con el stream
como un binary stream
.En ese caso, realmente no parece un "stream
" de datos, pero eso le brinda acceso aleatorio a los datos.En algunos casos no puedes usar el modo binario, especialmente si tus datos no están disponibles como una transmisión de red.La inserción y la extracción son las dos operaciones principales en las transmisiones.
ifstream
se crea como un input stream
por defecto.Entonces, std::ios::in
es redundante en este caso.Estás usando las banderas correctamente.
todas las corrientes heredan de ios
.Entonces, las banderas están disponibles en ambos lugares, puedes recuperarlas desde ios
directamente o desde fstream
.