Which NIOS II version do you use ? 12.x ?
You use uart in an 'interrupt' mode, you have also 'polled' mode.
You must be sure that you don't use 'small driver' or sometheing like this. It is explained in altera PDF.
Do you build with Qsys ?
You must be sure that your uart is understood as a serial port.
When you generate BSP in BSP editor, in "driver" tab you should see "uart driver" or "serial..." or something like this for your uart component.
You shouldn't use 'printf' in your ISR (because high memory footprint and long time execution). Keep ISR as short as possible.
I may add that if you use printf, system will hang if you don't read back (= if you don't use nios-terminal to you board)