What are the draw backs, if any, in using C and C++ together? Is doing so considered correct by the large?
You can't write exclusively in both C and C++.
You can write

exclusively in C
exclusively in C++
or using a combination of the two different languages.


to code in C is outright dumb, and it is the language of past generations.

C may be an old language but it is still heavily used and has its place.
It is practically the only glue language that is universal so great for writing effecient modules for other languages or gluing languages together.
It is also great for low level coding where you want/need to get close to the hardware.
But there are downsides to writing in C (but saying it is dumb to do so is stretching it a bit). But you should be able to justify your choice of choosing C over an alternative.

So, in terms of maintenance, acceptance, common practice and efficiency; is it something professionals on large scale projects see/do?

Are there large code bases writing in C that need maintenance: Yes.
Is it common practice to use C: That is entirely dependent on what you are doing it is imposable to generalize.
Personally I write exclusively in C++.
There is nothing I can do in C I can't do in C++ so I don't write C anymore (In fact I have dropped it from my resume (especially since I don't want to write C)). The advantage of C++ is I can get code written to as low a level as C but I also have higher level constructs (though not as high as modern scripting languages).
Code Review:
I see no advantage of using frpintf(). In situations like this C++ std::ofstream is much more flexible,
printHeading(FILE * fp)
{
    fprintf(fp, &quot;Employee            Pay        Reg Hrs     Gross       Fed        SSI        Net\n&quot;);

// I would always use C++ stream.
// It can be more than just a file.
printHeading(std::ostream&amp; stream)
{
     stream &lt;&lt;  &quot;Employee            Pay        Reg Hrs     Gross       Fed        SSI        Net\n&quot;;

Also if you are doing anything complex it is TYPE SAFE. *Unlike C code using fprintf(). This is one major area that C falls down in and is the cause of some of the major bugs in C code.
You check for an invalid number. But you are not checking for completely invalid input. What happens if somebody typed &quot;Fred&quot;
cin &gt;&gt; e.hours;
while(e.hours &lt; 0)
{
    cout &lt;&lt; &quot;  You did enter a valid amount of hours!\n&quot;;
    cout &lt;&lt; &quot;  Please try again: &quot;;
    cin &gt;&gt; e.hours;
}

You expect that there is never more than 100 bad characters in the input?
cin.ignore(100, '\n');

What happens if I accidentally paste in a paragraph of text.
And last but worst of all:
using namespace std; 

Never do this. It is OK if you are writting a ten line toy project. But once you get past anything more than a toy it causes more problems (in name clashes) than it is worth. The reason standard library is shortened to std:: is to make it easy and quick to type.