Il y a des différences entre les compilateurs, c'est normal.
Mais sans nous montrer le code, on ne peut pas voir où se situe l'erreur.
Nous ne sommes pas des astrologues.
Le point virgule est nécessaire à la fin de chaque instruction. Mais il n'en faut pas après une condition. Donc, c'est étrange. A mon avis, l'erreur doit venir de plus haut, et c'est probablement un header manquant ou mal compilé.
Personnellement, je préfère mille fois Code::block (ou Dev-C++), à Visual C++.
La grosse différence, c'est que Visual C++ demande des tas de headers qui rallongent beaucoup le code, et compliquent la tâche.
En entreprise, on travaille souvent sous Unix, et on utilise alors du GNU-C ou d'autres compilateurs qui sont plus proches de celui de Code::block que de celui de Visual C++.
De plus, Visual C++ est une implémentation assez éloignée de celle de l'esprit original de Kernighan et Ritchie.