Ох, боюсь - не смогу помочь. Ибо ни-че-го не понимаю! Ни в задании, ни в структуре входного файла, ни в программе (какая-то жуть накручена).
Я бы понял если бы, например, было так:
1. Входной файл содержит кучу слов разной длины вперемешку.
2. Вводим с консоли слово.
3. Выискиваем в файле все анаграммы введенного (например, через символьное множество с предварительной отсортировкой по длине) и располагаем их в лексикографическом порядке, начиная с введенного. Если введенное является последним, то выводим самую первую (младшую) анаграмму.
У Вас же что-то совсем не то. Вроде слова уже исходно упорядочены, все длины (почему-то кроме одно- и двухбуквенных) разделены пустыми строками, ввода слова в программе не вижу, логику получения выходных данных не понимаю.
Извините.