I don't know if he wants one prompt that distinguishes between decimal and binary - you could do it if binary numbers were always 8 digits and decimals were always 1-3 digits, but given 101 as input and no length restrictions there's no way to tell if this is binary or decimal. To play safe you could always convert it both ways.

Rereading "enhance the driver program to test an additional function DtoB"...if "the driver program", which is an odd way of saying "the main() function", currently tests BtoD, this could mean either modify it to take just a single binary input and give decimal output, or using the strict definition of "enhance", which means to add new features, could mean to take one of each and convert both. It's not clear.

Or you could prompt the user for which way he wants to convert, then take input and call BtoD or DtoB depending on the result. Personally I'd be inclined to clarify this with the tutor, which may well be part of the exercise, because often a program specification won't be precise enough and you will need to go back to the customer to clarify what exactly he wants.

I don't know how you make a loop that returns errors. Loops don't return anything; they just modify a variable and repeat a section of code until a particular end condition has been met. Can you give an example of a loop that "returns errors" and I'll see if I can see what the problem is? Give input and anything else I'm going to need to reproduce the problem.

Here's an example loop:
for (int i=0; i<10; i++)
  printf("Hello world %d\n",i);