Czemu nie zrobisz tak?
#include <stdio.h>
int main()
{
int a;
scanf("%i", &a);
printf("%o", a);
return 0;
}
Do konsoli wprowadzasz liczbę ósemkową poprzedzając '0'.
@edit Ułamków w ten sposób na pewno nie załatwisz. Polecam napisać funkcję do konwersji - wbrew pozorom nie jest takie trudne.