Заголовок freopen() - в stdio.h. Надо его включить. А так, вроде, работает. Хотя, подозреваю, по заданию под "сделать ... с классом" подразумевалось написать класс "строка". Что-то по типу string в STL, только попроще, конечно.