Da das hier nicht C sondern C++ ist, kannst du auch mit Strings arbeiten. Meine Vorangehensweise wäre:
Zuerst eine Zeile einlesen (Abbruchbedingung wäre dann "Enter") oder solange einlesen bis ein bestimmtes Zeichen eingelesen wird.
Hat man nun den String, zerlegt man dieses. Da KLAPS (Klammer vor Punkt vor Strich) in Mathe herrscht (

) würde ich sagen, man zerlegt von innen nach außen, d.h. die innerste zuerst, dann nach außen hin arbeiten, die Ergebnisse der jeweiligen Klammern anschließend zwischenspeichern.