File IO: c (FILE *) and fgets() vs. c++ istream and read() ; Efficacy? Efficiency?
There are a myriad questions regarding the use of either c-style file IO (e.g. using FILE *, and functions like fgets(), etc) or c++ style (e.g. istreams or ifstreams and functions like read() or get(), etc).  I have been unable to find topics comparing the two methods for different features.  When is one better than the other for

 1. Convenience?
 2. Efficiency?
 3. Efficacy?

I generally program in c++, but still use FILE * for all of my IO, and I use (f)printf instead of cout, etc etc.  This has just been habit, I think.  Does anyone have explicit reasons for preferring one over the other?  or situations when one or the other is optimal?
File IO: c (FILE *) and fgets() vs. c++ istream and read() ; Efficacy? Efficiency?
===

There are a myriad questions regarding the use of either c-style file IO (e.g. using FILE *, and functions like fgets(), etc) or c++ style (e.g. istreams or ifstreams and functions like read() or get(), etc).  I have been unable to find topics comparing the two methods for different features.  When is one better than the other for

 1. Convenience?
 2. Efficiency?
 3. Efficacy?

I generally program in c++, but still use FILE * for all of my IO, and I use (f)printf instead of cout, etc etc.  This has just been habit, I think.  Does anyone have explicit reasons for preferring one over the other?  or situations when one or the other is optimal?