FF (Form Feed) is ASCII code point 12 (0x0C), Unicode U+000C, and a control character. If your printer randomly ejects a blank page mid-job, or a PDF renders with an unexpected page break, a stray form feed is a likely suspect. It originally told the printer to advance to the top of the next page, and a few contexts still respect that instruction. In most languages `\f` is a valid escape sequence, and `isspace('\f')` returns true in C, but it has almost no effect on screen output — terminals typically render it as a blank line or ignore it entirely. Where it still matters: some Unix tools like `less` interpret `\f` as a page separator (try pressing `q` then reopening — it jumps between sections). Python's PEP 8 mentions it as an acceptable way to separate top-level sections in source files, though almost nobody actually does this. In PostScript and PCL, form feed is a real command that ejects the current page, which is why stray `\f` characters in print streams cause phantom blank sheets. Form feed comes from the era of continuous-feed paper. Printers loaded with fanfold stock needed a signal to skip forward to the perforation and start a fresh page — form feed was that signal, named after the "form" (the preprinted paper template) it advanced to. UTF-8 encodes it as a single byte 0x0C, identical to its ASCII value. Unicode classifies it as Cc (Control, Other) under the official name FORM FEED. Sometimes confused with LF (U+000A), but LF advances one line while FF advances one page — a much larger jump when anything still listens.
const char *page1 = "Report A\n";const char *page2 = "Report B\n";char out[64];snprintf(out, sizeof(out), "%s\f%s", page1, page2); // FF = page break
FF (ASCII 12) originally told printers to eject the current page and start printing on the next one — a literal 'page break.' It's the physical equivalent of pressing Enter enough times to reach a new sheet, but as a single byte.
In most terminals, no — it's typically ignored or treated as whitespace. Some terminal emulators clear the screen (similar to Ctrl+L). In code editors, it sometimes shows as a horizontal line or special glyph. Its practical use is now mostly in printer-oriented workflows.
The Python style guide (PEP 8) historically mentioned FF (Ctrl+L) as a page break between logical sections of code. Some C programmers use it similarly. Editors like Emacs recognize it as a section divider and can navigate between FF-delimited sections.
In most terminals, Ctrl+L sends FF — but terminals typically interpret it as 'clear screen' rather than inserting the byte. In code, use the \f escape sequence. In Vim, type Ctrl+V then Ctrl+L in insert mode to insert the literal character.