putc() writes into a file stream only 1 byte at a time specified by you. You are trying to print a whole string instead, which will never work. And more over, where are you trying to write this value? putc() takes two parameters, the first one is the character you want to write and the second one is the FILE *, representing the open file stream where you want to write. In your case, you have not specified the FILE * at all, hence the error.
You can use fprintf() or fputs() instead, like:
But beware while using gets(), try to avoid it in all cases. Also, make sure gets() does not return NULL (which you have not handled)
fprnitf(stdout, "%s", gets(buffer));