Uno es C y uno es C++. Tomate, tomate (Esa expresión no funciona tan bien cuando la escribes). Supongo que no es probable que veas una diferencia en el rendimiento.
Una persona muy inclinada, con C++ anti-C probablemente le diga algo similar a fstream
pudiendo tratar con diferentes tipos con más facilidad. Con FILE
tiene dos opciones: tratar en bytes o tratar cadenas de formato. Desde printf
o fwrite
y col. No sé cuál es el tipo "real" de sus argumentos. Esto hace que sea más fácil equivocarse. También está el hecho de que una clase de C++ tendrá un destructor y entonces se limpiará "gratis" cuando el objeto se salga del alcance. (Aunque ... ¿De verdad quieres que algo como fflush
suceda silenciosamente en un destructor? Probablemente no.) Para este tipo de argumentos, diría que en realidad no es que es una gran carga usar FILE
, pero bueno, algunos la gente se siente más fuerte que yo en estos asuntos.
Eventualmente se reducirá a lo que su aplicación está tratando de hacer, y es posible que FILE
, fstream
, o ambos puedan satisfacer sus necesidades.
Elija lo que funciona, sea flexible con lo que otras personas elijan, comprenda los argumentos y no se vuelva demasiado religioso al respecto. Ese es mi consejo. :-)
El título de esta pregunta lo hace un excelente candidato como una pregunta canónica sobre el tema, especialmente teniendo en cuenta que hay una excelente respuesta aceptada.Creo que esta pregunta puede interpretarse específicamente como una pregunta de tecnología con una respuesta específica (así como una pregunta más general sobre una recomendación para una elección de biblioteca, que parece ser la interpretación que causó que se cerrara la pregunta, dado el dos preguntas que aparecen enumeradas como duplicadas), así que he votado para reabrir la pregunta. –