Format Specifiers in C - GeeksforGeeks (2024)

The format specifier in C is used to tell the compiler about the type of data to be printed or scanned in input and output operations. They always start with a % symbol and are used in the formatted string in functions like printf(), scanf, sprintf(), etc.

The C language provides a number of format specifiers that are associated with the different data types such as %d for int, %c for char, etc. In this article, we will discuss some commonly used format specifiers and how to use them.

List of Format Specifiers in C

The below table contains the most commonly used format specifiers in C

Format Specifier

Description

%c

For character type.

%d

For signed integer type.

%e or %E

For scientific notation of floats.

%f

For float type.

%g or %G

For float type with the current precision.

%i

signed integer

%ld or %li

Long

%lf

Double

%Lf

Long double

%lu

Unsigned int or unsigned long

%lli or %lld

Long long

%llu

Unsigned long long

%o

Octal representation

%p

Pointer

%s

String

%u

Unsigned int

%x or %X

Hexadecimal representation

%n

Prints nothing

%%

Prints % character

Examples of Format Specifiers in C

1. Character Format Specifier – %c in C

The %c is the format specifier for the char data type in C language. It can be used for both formatted input and formatted output in C language.

Syntax:

scanf("%d...", ...);
printf("%d...", ...);

Example:

C
// C Program to illustrate the %c format specifier.#include <stdio.h>int main(){ char c; // using %c for character input scanf("Enter some character: %c", &c); // using %c for character output printf("The entered character: %c", &c); return 0;}


Input:

Enter some character: A

Output:

The entered character: A

2. Integer Format Specifier (signed) – %d in C

We can use the signed integer format specifier %d in the scanf() and print() functions or other functions that use formatted string for input and output of int data type.

Syntax:

scanf("%d...", ...);
printf("%i...", ...);

Example:

C
// C Program to demonstrate the use of %d and %i#include <stdio.h>// Driver codeint main(){ int x; // taking integer input scanf("Enter the two integers: %d", &x); // printing integer output printf("Printed using %%d: %d\n", x); printf("Printed using %%i: %3i\n", x); return 0;}


Input:

Enter the integer: 45

Output:

Printed using %d: 45
Printed using %i: 45

3. Unsigned Integer Format Specifier – %u in C

The %u is the format specifier for the unsigned integer data type. If we specify a negative integer value to the %u, it converts the integer to its first complement.

Syntax:

printf("%u...", ...);
scanf("%u...", ...);

Example: The following C Program demonstrates how to use %u in C.

C
// C Program to illustrate the how to use %u#include <stdio.h>// driver codeint main(){ unsigned int var; scanf("Enter an integer: %u", &var); printf("Entered Unsigned Integer: %u", var); // trying to print negative value using %u printf("Printing -10 using %%u: %u\n", -10); return 0;}


Input:

Enter an integer: 25

Output:

Entered unsigned integer: 25
Printing -10 using %u: 4294967286

4. Floating-point format specifier – %f in C

The %f is the floating point format specifier in C language that can be used inside the formatted string for input and output of float data type. Apart from %f, we can use %e or %E format specifiers to print the floating point value in the exponential form.

Syntax:

printf("%f...", ...);
scanf("%e...", ...);
printf("%E...", ...);

Example:

C
// C program to demonstrate the use of %f, %e and %E#include <stdio.h>// driver codeint main(){ float a = 12.67; printf("Using %%f: %f\n", a); printf("Using %%e: %e\n", a); printf("Using %%E, %E", a); return 0;}

Output

Using %f: 12.670000Using %e: 1.267000e+01Using %E, 1.267000E+01

5. Unsigned Octal number for integer – %o in C

We can use the %o format specifier in the C program to print or take input for the unsigned octal integer number.

Syntax:

printf("%o...", ...);
scanf("%o...", ...);

Example:

C
#include <stdio.h>int main(){ int a = 67; printf("%o\n", a); return 0;}

Output

103

6. Unsigned Hexadecimal for integer – %x in C

The %x format specifier is used in the formatted string for hexadecimal integers. In this case, the alphabets in the hexadecimal numbers will be in lowercase. For uppercase alphabet digits, we use %X instead.

Syntax:

printf("%x...", ...);
scanf("%X...", ...);

Example:

C
// C Program to demonstrate the use of %x and %X#include <stdio.h>int main(){ int a = 15454; printf("%x\n", a); printf("%X", a); return 0;}

Output

3c5e3C5E

7. String Format Specifier – %s in C

The %s in C is used to print strings or take strings as input.

Syntax:

printf("%s...", ...);
scanf("%s...", ...);

Example:

C
// C program to illustrate the use of %s in C#include <stdio.h>int main(){ char a[] = "Hi Geeks"; printf("%s\n", a); return 0;}

Output

Hi Geeks

Example: The working of %s with scanf() is a little bit different from its working with printf(). Let’s understand this with the help of the following C program.

C
// C Program to illustrate the working of %s with scanf()#include <stdio.h>int main(){ char str[50]; // taking string as input scanf("Enter the String: %s", str); printf("Entered String: %s", str); return 0;}


Input

Enter the string: Hi Geeks

Output

Hi

As we can see, the string is only scanned till a whitespace is encountered. We can avoid that by using scansets in C.

8. Address Format Specifier – %p in C

The C language also provides the format specifier to print the address/pointers. We can use %p to print addresses and pointers in C

Syntax

printf("%p...", ...);

Example:

C
#include <stdio.h>int main(){ int a = 10; printf("The Memory Address of a: %p\n",(void*)&a); return 0;}

Output

The Memory Address of a: 0x7ffe9645b3fc

Input and Output Formatting

C language provides some tools using which we can format the input and output. They are generally inserted between the % sign and the format specifier symbol Some of them are as follows:

  1. A minus(-) sign tells left alignment.
  2. A number after % specifies the minimum field width to be printed if the characters are less than the size of the width the remaining space is filled with space and if it is greater then it is printed as it is without truncation.
  3. A period( . ) symbol separates field width with precision.

Precision tells the minimum number of digits in an integer, the maximum number of characters in a string, and the number of digits after the decimal part in a floating value.

Example of I/O Formatting

C
// C Program to demonstrate the formatting methods.#include <stdio.h>int main(){ char str[] = "geeksforgeeks"; printf("%20s\n", str); printf("%-20s\n", str); printf("%20.5s\n", str); printf("%-20.5s\n", str); return 0;}

Output

 geeksforgeeksgeeksforgeeks geeksgeeks 

FAQs on C Format Specifiers

1. Does C have a format specifier for binary numbers?

No, the C language does not provide a format specifier for binary numbers.

2. What is the formatted string?

The input and output functions in C take a string as an argument that decides how the data is displayed on the screen or the data is retrieved to the memory. This string is called the formatted string.



him0000

Format Specifiers in C - GeeksforGeeks (2)

Improve

Previous Article

Basic Input and Output in C

Next Article

printf in C

Please Login to comment...

Format Specifiers in C - GeeksforGeeks (2024)
Top Articles
The Blackening | Rotten Tomatoes
The Blackening - Movie Reviews
Kmart near me - Perth, WA
Cars & Trucks - By Owner near Kissimmee, FL - craigslist
Nfr Daysheet
Produzione mondiale di vino
How Many Slices Are In A Large Pizza? | Number Of Pizzas To Order For Your Next Party
ocala cars & trucks - by owner - craigslist
Burn Ban Map Oklahoma
Used Drum Kits Ebay
Sony E 18-200mm F3.5-6.3 OSS LE Review
Char-Em Isd
91 East Freeway Accident Today 2022
Petco Vet Clinic Appointment
Aldi Bruce B Downs
Iroquois Amphitheater Louisville Ky Seating Chart
Dr Ayad Alsaadi
Dallas Mavericks 110-120 Golden State Warriors: Thompson leads Warriors to Finals, summary score, stats, highlights | Game 5 Western Conference Finals
Busted Mcpherson Newspaper
Directions To Cvs Pharmacy
Rust Belt Revival Auctions
Vivaciousveteran
The Creator Showtimes Near R/C Gateway Theater 8
Lexus Credit Card Login
Synergy Grand Rapids Public Schools
Dmv In Anoka
Panolian Batesville Ms Obituaries 2022
Speedstepper
WRMJ.COM
Cable Cove Whale Watching
Dexter Gomovies
Kuttymovies. Com
Solo Player Level 2K23
Ixl Lausd Northwest
Diana Lolalytics
Chris Provost Daughter Addie
About Us | SEIL
Craigs List Jonesboro Ar
Academic important dates - University of Victoria
Admissions - New York Conservatory for Dramatic Arts
Mars Petcare 2037 American Italian Way Columbia Sc
Appraisalport Com Dashboard Orders
1Exquisitetaste
Random Animal Hybrid Generator Wheel
The Quiet Girl Showtimes Near Landmark Plaza Frontenac
6463896344
Germany’s intensely private and immensely wealthy Reimann family
Doelpuntenteller Robert Mühren eindigt op 38: "Afsluiten in stijl toch?"
Treatise On Jewelcrafting
Msatlantathickdream
Diablo Spawns Blox Fruits
Craigs List Sarasota
Latest Posts
Article information

Author: Rev. Porsche Oberbrunner

Last Updated:

Views: 6417

Rating: 4.2 / 5 (73 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Rev. Porsche Oberbrunner

Birthday: 1994-06-25

Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

Phone: +128413562823324

Job: IT Strategist

Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.