Ich finde piet's Idee ganz gut. sscanf liefert die Anzahl gematchter Ausdrücke zurück (siehe
http://www.cplusplus.com/reference/clibrary/cstdio/sscanf.html). Du kannst also nachsehen, ob sscanf 4 zurück liefert.
Danach solltest Du natürlich prüfen, ob die Zahlen im richtigen Bereich liegen (0-255). Das ließe sich relativ elegant mit Bit-Schubsereien bewerkstelligen, wenn wir denn schon im klassischen C-Bereich jonglieren:
const unsigned int mask = ~((unsigned int)(255));
bool valid = true;
for( unsigned int i=0; i<4 && valid; ++i )
{
if( mask & oct[i] )
valid = false;
}
if( !valid )
{
// Fehler behandeln
}
Wenn Du irgendwie doch was elaborierteres (omg, was'n Wort...) haben möchtest, müsstest Du wahrscheinlich schwerere Geschütze auffahren. Spontan fallen mir da Boost und Qt ein:
Viel Spaß beim Programmieren!