\\f
is said to be the form feed. \\t
is a tab, \\a
is a beep, \\n
is a newline. What exactly is a form feed - \\f
If you were programming for a 1980s-style printer, it would eject the paper and start a new page. You are virtually certain to never need it.
http://en.wikipedia.org/wiki/Form_feed
It's go to newline then add spaces to start second line at end of first line
Output
Hello
Goodbye
It skips to the start of the next page. (Applies mostly to terminals where the output device is a printer rather than a VDU.)
It comes from the era of Line Printers and green-striped fan-fold paper.
Trust me, you ain't gonna need it...
Although recently its use is undefined, a common and useful use for the form feed is to separate sections of code vertically, like so: (from http://ergoemacs.org/emacs/emacs_form_feed_section_paging.html)
From wiki page
12 (form feed, \f, ^L), to cause a printer to eject paper to the top of the next page, or a video terminal to clear the screen.
or more details here.
It seems that this symbol is rather obsolete now and the way it is processed may be(?) implementation dependent. At least for me your code gives the following output (xcode gcc 4.2, gdb console):
hello
goodbye