there's a handful of ways to approach your problem and one of them, you mentioned.
using system("pause") is not what i'm talking about but the idea is the same. maybe you could make or use a time function and incorporate a while loop and have it run until time has ran for a certain amount of (milli|nano)seconds.
// pseudo code
void pause(int m_seconds) // or whatever measure of time you want to use
if (m_seconds <= 0)
return; // don't wait/pause
start_time = get_ticks();
while ( (end_time - start_time) < m_seconds)
end_time = get_ticks();
// when end_time - start_time is greater than m_seconds,
// the loop is broken, and the function ends.
I can't remember if get_ticks() exists or not [in time.h] but there's a function similar to it. and wherever you want to pause, you would just call your pause function.
hope that helps.