En mi código que estoy pasado una referencia a un iostream, que en este caso es en última instancia un archivo.
¿Hay alguna manera de saber si, cuando fue abierto, se ajusta a [in | out] no sólo [en]?¿Puedo solicitar un iostream si es grabable?
7
A
Respuesta
3
Después de mirar todos los miembros de IOS, iostream, ostream, que no vi ninguna manera de recuperar la bandera openmode
utilizado. Supongo que tendrás que intentar escribir algo a tu referencia y detectar cualquier error que arroje. O dependiendo de cómo esté configurado, verifique el resultado de bad().
-2
... tipo de
if (dynamic_cast<ostream*>(MyStreamPtr) == 0)
{
// Not for output...
}
1
El openmode
se pasa al std::streambuf
, pero no hay métodos para recuperarlo. La única manera de saber si el archivo está abierto para operaciones de escritura está tratando de escribir y la comprobación de f.fail()
, u opcionalmente f.bad()
(equivalente a f.rdstate() & std::fstream::badbit
).
Cuestiones relacionadas
- 1. ¿Cómo verifico si un directorio es grabable en PHP?
- 2. ¿Cómo puedo usar Delphi para probar si un Directorio es grabable?
- 3. Bash: cree un archivo si no existe, de lo contrario verifique si es grabable
- 4. grabable locales const
- 5. C# .NET - cómo determinar si el directorio es grabable, con o sin UAC?
- 6. ¿Qué es el fiasco C++ iostream endl?
- 7. Error iostream linker
- 8. Versión binaria de iostream
- 9. Cómo crear un impulso ssl iostream?
- 10. ¿Cómo puedo solicitar entradas en un UNION sin ORDER BY?
- 11. iostream, algunas preguntas
- 12. Cómo puedo solicitar grupos en WPF
- 13. ¿Cómo puedo solicitar campos en Django ModelForm?
- 14. #include iostream en C?
- 15. Solicitar un archivo con un encabezado personalizado
- 16. ¿Por qué iostream incluye time.h?
- 17. Diferencia entre iostream y iostream.h
- 18. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 19. ¿Cómo puedo verificar si un valor es un número?
- 20. Manipulador personalizado para C++ iostream
- 21. Crear un iostream usando boost asio especificando ip y puerto
- 22. boost :: iostream zlib comprimiendo múltiples archivos en un solo archivo
- 23. Solicitar el uso de un SqlDataReader
- 24. archivo "iostream" no encontrado en Xcode 4.2
- 25. ¿Debería un botón cancelar solicitar confirmación?
- 26. ¿Cómo puedo saber si un IQueryable es IQueryableQueryable?
- 27. ¿Cómo puedo verificar si un entero con signo es positivo?
- 28. ¿Por qué no puedo verificar si un 'DateTime' es 'Nothing'?
- 29. ¿Cómo puedo saber si un entero Java es nulo?
- 30. ¿Puedo teñir (negro) un UIKeyboard? ¿Si es así, cómo?
¿Es realmente un 'iostream &'? Si es así, hereda de ambos 'istream' y' ostream', y, por lo tanto, puede escribirse. Si está tomando una referencia a la clase base, 'ios', entonces está viendo usar RTTI o funciones de plantilla. –
std :: fstream f ("/ work/file.txt", std :: ios_base :: in); - f hereda ostream pero no se puede escribir. –
¿Pero por qué harías eso, excepto para molestar a las personas que quieren saber si pueden escribir en el archivo? – UncleBens