This is really not C++ code. It's C with streaming input and output. There isn't a class or method to be seen.
Also - it usually is recommended to NOT recurse on the main function. In this code, you actually want to just loop - NOT recurse.
This code is not too far away from what is needed for a singly-linked list. You have a pointer to the next item and a piece of data. You just have to adapt it so the tail of the list points to the head so it is circular. The code that manipulates the list needs a lot of work but at least you have a place to start from :
struct Node
{
int Data;
Node* pNext;
};
Next you should implement a function to add a node and another one to delete a node from the list. The operations you have to do are specializations of those two actions.
I am not going write the code for you. You need write this code yourself. You might find this tutorial helpful :
Circular Linked List[
^]. Their data structure is almost identical to yours.