#3 Honza
No ještě před tím řádkem ten znak nového řádku ze vstupního proudu odstranit, například
getchar();
Ono totiž, když zadáváte, jaký druh převodu se má uskutečňovat, tak se do vstupního proudu vloží '2' a '\n', scanf ze vstupního proudu načte '2', ale znak nového řádu tam nechá, fgets následně načítá řádek až do znaku nového řádku, ale protože je znak nového řádku hned tím prvním, tak nic nenačte ...