Back
Asciify Logo
Asciify

Form Feed

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.

Whitespace

Technical Details

Code Example

</>
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

Frequently Asked Questions

  • 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.

@workani&@alexluthor
Privacy & legal

Privacy

No accounts, no ads, no tracking cookies, and no cross-site tracking. The only analytics we keep are faceless — anonymous, aggregated counts of pages and searches, never tied to you. We store no IP addresses, set no tracking cookies, and build no profiles. Cloudflare hosts the site and handles requests for delivery and security.

Full privacy policy·Extension privacy·legal@asciify.dev

Attributions & licenses

Twemoji
© Twitter, Inc and other contributors · CC-BY 4.0
Noto Color Emoji
© Google · Apache 2.0
Fluent UI Emoji
© Microsoft · MIT
OpenMoji
© HfG Schwäbisch Gmünd · CC-BY-SA 4.0
Toss Face
© Viva Republica (Toss) · SIL OFL 1.1
JoyPixels
© JoyPixels Inc. · Free Limited Use License
SerenityOS Emoji
© The SerenityOS Developers · BSD-2-Clause
EmojiTwo
© EmojiTwo contributors · CC-BY 4.0
Apple Color Emoji
© Apple, Inc.
Facebook Emoji
© Meta Platforms, Inc.

Apple and Facebook emoji styles are proprietary and shown here solely for reference and comparison — a common-sense application of nominative-use / fair-use principles. asciify is not affiliated with, endorsed by, or sponsored by Apple, Inc., Meta Platforms, Inc., or any other rights holder listed above. If a rights holder requests removal of their emoji style from this site, it will be removed.

All other vendor emoji are reproduced for reference and comparison under their respective open licenses listed above.

Character names and code points from the Unicode® Standard. Unicode® and the Unicode Logo are registered trademarks of Unicode, Inc.

Privacy
© asciify.dev 2025-2026