2011-12-20 10 views
9

Si tengo que leer int de ifstreammanera correcta para emitir la dirección del puntero int a char

int myInt = 0; 
fileStream.read(reinterpret_cast<char*>(&myInt), sizeof(int)); 

está utilizando reinterpret_cast<char*> forma correcta de lograr eso?

+1

Esto puede ser de ayuda: http://stackoverflow.com/questions/4748232/reinterpret-cast :) –

+11

considerar el uso 'sizeof myInt' para no repetir el tipo, y para estar seguro si luego decide cambiar el tipo a, por ejemplo, 'long' que puede tener un tamaño diferente. – unwind

+1

Gracias. Parece una buena idea usar 'sizeof myInt' – dextrey

Respuesta

15

está utilizando reinterpret_cast forma correcta de lograr eso?

Sí. Prefiere moldes de estilo C++, en lugar de moldes de estilo c.

Como se sugiere en los comentarios, una mejor manera de utilizar el read method function es:

int myInt = 0; 
fileStream.read(reinterpret_cast<char*>(&myInt), sizeof(myInt)); 
+0

No estoy de acuerdo con la respuesta (no con el comentario sobre el estilo de C++ y c), vea la respuesta de Jon a continuación. – Walter

+0

@Walter Hay un voto de abajo a la izquierda. Sin embargo, la respuesta de Jon no va a funcionar si se lee desde un archivo binario. –

+0

es una pena que no pueda editar ese estúpido comentario mío ... – Walter