Common Format Specifiers

Specifier Data Type printf Example scanf Example
%d int printf("Value: %d", num); scanf("%d", &num);
%i int printf("Value: %i", num); scanf("%i", &num);
%u unsigned int printf("Value: %u", num); scanf("%u", &num);
%f float printf("Value: %f", num); scanf("%f", &num);
%lf double printf("Value: %f", num); scanf("%lf", &num);
%c char printf("Char: %c", ch); scanf("%c", &ch);
%s string (char array) printf("String: %s", str); scanf("%s", str);
%x, %X hex integer printf("Hex: %x", num); scanf("%x", &num);
%hhx unsigned char (hex) printf("Hex byte: %hhx", byte); scanf("%hhx", &byte);
%o octal integer printf("Octal: %o", num); scanf("%o", &num);
%p pointer printf("Address: %p", ptr); scanf("%p", &ptr);
%e, %E scientific notation printf("Scientific: %e", num); scanf("%e", &num);
%lu unsigned long printf("Value: %lu", num); scanf("%lu", &num);
%ld long int printf("Value: %ld", num); scanf("%ld", &num);
%hd short int printf("Value: %hd", num); scanf("%hd", &num);
%zu size_t printf("Size: %zu", sizeof(int)); scanf("%zu", &size);

Format Modifiers

Modifier Description Example
%Nd Field width (N spaces) printf("%5d", 10); // " 10"
%.Nf Precision (N decimals) printf("%.2f", 3.14159); // "3.14"
%Nd.Nf Width and precision printf("%8.2f", 10.5); // " 10.50"
%-Nd Left-justified printf("%-5d", 10); // "10 "
%0Nd Zero-padded printf("%05d", 10); // "00010"

Common scanf Errors

Common printf Tips and Errors

Remember to include the appropriate header file for these functions:

#include <stdio.h>

Length Modifiers for Integer Types