Dev-C++ è solo un IDE che usa Minimilistic GNU per Windows (WinGW) con un porting di gcc. Se ti piace gcc installati cygwin (Unix-like x Windows) oppure più semplicemente Linux.
Se ti piace Windows esistono compilatori che sono nati per questo SO e sono anche gratuiti. L'ultima versione di Dev-C++ risale al 2005, nella quale venivano corrette alcune opzioni del compilatore.
http://dev-cpp.cvs.sourceforge.net/viewvc/dev-cpp/V5/devcpp.exe?view=log.
La system ("pause") è un pessimo metodo per interrompere l'esecuzione per programma perchè:
1)E' una chiamata al sistema operativo con l'inclusione di tutto l'enviroment del processo di shell.
2)Non è portatile: gira solo su DOS o Windows.
3)Non è sicura. Anche il più handicappato degli hacker riesce a fare un exploit con conseguenze disastrose.
La getchar() legge un carattere da tastiera. E' standard nel C e può svolgere lo stesso compito compatibilmente al sistema operativo usato. L'unica accortezza che bisogna avere è che a volte bisogna svuotare il buffer di tastiera prima di richiamarla. Questo perchè alcune funzioni di lettura non tolgono il carattere di INVIO ('\n').... ma questo è un'altro discorso già fatto miriadi di volte e anche legato anche a incomprensioni della scanf.
Quello che mi viene da suggerire a te, ma soprattutto ad altri, consiste nel definire queste due righe all'inizio del programma ed usarne una o entrambe a seconda del caso:
#define FLUSH while (getchar() != '\n')
#define PAUSE getchar ()
...
// Buffer sporco
FLUSH;
PAUSE;
...
// Buffer pulito
PAUSE;
...
}
...