Articolo originale: https://www.freecodecamp.org/news/format-specifiers-in-c/

Gli identificatori di formato definiscono il tipo di dati da stampare sull'output standard. È necessario utilizzare gli identificatori di formato sia che si stampi l'output formattato con printf() e sia che si accetti l'input con scanf().

Alcuni degli identificatori % che puoi utilizzare in ANSI C sono i seguenti:

SPECIFICATORE USATO PER
%c un unico carattere
%s una stringa
%hi short (con segno)
%hu short (senza segno)
%Lf long double
%n non stampa nulla
%d un intero decimale (si assume base 10)
%i un numero intero decimale (rileva automaticamente la base)
%o un intero ottale (in base 8).
%x un intero esadecimale (base 16)
%p un indirizzo (o puntatore)
%f un numero in virgola mobile per i float
%u int decimale senza segno
%e un numero in virgola mobile in notazione scientifica
%E un numero in virgola mobile in notazione scientifica
%% il simbolo %

Esempi:

Identificatore di formato a carattere singolo %c:

#include <stdio.h> 

int main() { 
  char first_ch = 'f'; 
  printf("%c\n", first_ch); 
  return 0; 
} 

Output:

f

Identificatore di formato stringa %s:

#include <stdio.h> 

int main() { 
  char str[] = "freeCodeCamp"; 
  printf("%s\n", str); 
  return 0; 
} 

Output:

freeCodeCamp

Immissione di caratteri con l'identificatore di formato %c:

#include <stdio.h> 

int main() { 
  char user_ch; 
  scanf("%c", &user_ch); // l'utente inserisce Y
  printf("%c\n", user_ch); 
  return 0; 
} 

Output:

Y

Input stringa con l'identificatore di formato %s:

#include <stdio.h> 

int main() { 
  char user_str[20]; 
  scanf("%s", user_str); // l'utente inserisce fCC
  printf("%s\n", user_str); 
  return 0; 
} 

Output:

fCC

Identificatori di formato intero decimale %d e %i:

#include <stdio.h> 

int main() { 
  int found = 2015, curr = 2020; 
  printf("%d\n", found); 
  printf("%i\n", curr); 
  return 0; 
} 

Output:

2015
2020

Identificatori di formato dei numeri in virgola mobile %f e %e:

#include <stdio.h>

int main() { 
  float num = 19.99; 
  printf("%f\n", num); 
  printf("%e\n", num); 
  return 0; 
}

Output:

19.990000
1.999000e+01

Identificatore di formato intero ottale %o:

#include <stdio.h> 

int main() { 
  int num = 31; 
  printf("%o\n", num); 
  return 0; 
}

Output:

37

Identificatore di formato intero esadecimale %x :

#include <stdio.h> 

int main() { 
  int c = 28; 
  printf("%x\n", c); 
  return 0; 
} 

Output:

1c