i believe there's confusion between C... (1) language set, (2) standard library functions, (3) IDE interface. lets dont talk about how compiler "mangles" things, thats #4. and i wont say much about them except imho, they are 3 distinct entities. lack of (2) and (3) doesnt mean that its not the "language", afaik. if you expect printf to be a C, then how do you expect atMega256 printf something? out of its butt?
want printf? do it on a complete system with monitor or printer, a PC! and a console! but then, you dont expect printf will show you something on a "Windows" what you see on your screen right now. Windowed or mCU peripherals or such for that matter are another whole story not relating to "C", if you expect them to be, than you can buy a train ticket to DissapointmentVille. K&R guide always been for consoled PC such as DOS, so use it and do it there! want to do C for embedded mCU? buy a "C for embedded mCU" book from Mr Ritchie if you can find one.
now, are we talking Arduino "IDE"? well its nothing but to waste people's time, if you got to know it better. lack of debugging tools is one thing, most annoying is how inefficient it makes compilation even for a simple application, its so damned slow. nothing more to say about it.