Difference between revisions of "printf"

From SEGGER Wiki
Jump to: navigation, search
m
m
Line 24: Line 24:
   
 
== Parameter specification==
 
== Parameter specification==
=== Type specification ===
 
 
===Type field===
 
===Type field===
 
The Type field can be any of:
 
The Type field can be any of:
Line 42: Line 41:
 
|-
 
|-
 
| <code>f</code>, <code>F</code>
 
| <code>f</code>, <code>F</code>
  +
|<code>double</code> in normal (fixed-point) notation.
|<code>double</code> in normal ([[Fixed-point arithmetic|fixed-point]]) notation. <code>f</code> and <code>F</code> only differs in how the strings for an infinite number or NaN are printed (<code>inf</code>, <code>infinity</code> and <code>nan</code> for <code>f</code>; <code>INF</code>, <code>INFINITY</code> and <code>NAN</code> for <code>F</code>).
 
 
|-
 
|-
 
| <code>x</code>, <code>X</code>
 
| <code>x</code>, <code>X</code>

Revision as of 20:09, 6 July 2019

"printf" is a function in the C-standard library that outputs text to standard output. Standard output is typically the terminal or debug console, depending on the system the program is running on. The f stands for formatted, allowing the function to output not just fixed strings, but also text with variable data in it.

Hello world

The simplest of all C-programs is known as "Hello world" program. It outputs "Hello world", using printf.

#include <stdio.h>

int main(void) {
  printf("Hello world!\n");
  return 0;
}

Using parameters

Parameters need to be specified in the format string. A parameter definition starts with a % character. A simple example with one numerical parameter looks as below:

  printf("Total sum is: %d\n", Sum);

Parameter specification

Type field

The Type field can be any of:

Character Description
% Prints a literal % character (this type doesn't accept any flags, width, precision, length fields).
d, i int as a signed decimal number. %d and %i are synonymous for output, but are different when used with scanf() for input (where using %i will interpret a number as hexadecimal if it's preceded by 0x, and octal if it's preceded by 0.)
u Print decimal unsigned int.
f, F double in normal (fixed-point) notation.
x, X unsigned int as a hexadecimal number. x uses lower-case letters and X uses upper-case.
s null-terminated string.
c char (character).