If you read carefully the definition of printf() functions. All returns the number of printer characters. A negative value is returned only in case of "output error" (like using fprintf() and trying to write to an invalid stream). The only exception is snprintf() functions. They will return the number of characters that would be printed regardless of the size of the bufffer.
scanf() will return the number of successful convertions.