Are you refering to errors that occur from the use of printf or fprintf during runtime of an application? Or, are you refering to syntactic mistakes during the coding progress that result in errors during compilation? Or, to the actual output they provide during runtime from a legitimate call?
I can only assume for the moment that you're refering to the 3rd one. If you need the output to go to the standard error buffer, simply use fprintf as:
fprintf(stderr, "Could not do that: %s\n", reasonString);
If I am misunderstanding, please explain, and possibly post the section of code that is causing the problem.