Fino a quando ti attieni allo standard ISO non avrai problemi di portabilità tra compilatori diversi, ammesso che questi siano conformi ad esso (cosa che non sempre si verifica). Quando ti allontani dagli standard, cominci ad avere problemi: la funzione fflush() richiamata su stdin non ha un comportamento standardizzato, dipende dalle implementazioni delle librerie dei vari compilatori, è per questo che nel passaggio da un ambiente all'altro hai problemi.