Нужно ли перед C++ учить С?
Нет, Си учить перед плюсами не обязательно.
А вот с учебниками вы лукавите, язык не менялся, компиляторы те же, что сложного поставить отдельно компилятор или любую другую ide (Code Blocks, Visual Studio и т.д.) для Сей?
Другое дело, надо ли оно вам, раз вы с компилятором даже справиться не смогли.
Для написания олимпиад особой надобности нет. Для всего остального - пожалуйста.