In short.... no.

I should point out that gets() is bad. It doesn't do any bounds checking, so if the user enters too many characters, the buffer will overflow. It is a function that I see many newbies use, presumably because they have a lame teacher or book.

A better way to flush stdin is to
>while (getchar() != '\n');
This will read in a character at a time, until the newline is reached. All characters are discarded.

It does however assume that there is actually garbage in the buffer. If there isn't (meaning the buffer is already empty), then the user will need to press enter again to satisfy the loop, which is not a user-friendly situation. Use it with care!