Home » C programming language

Argument index specification in printf in C programming language



Learn: How to specify the argument indexing with format specifier in printf statement in C programming language?

Consider the code:

int a,b,c;
a=10; b= 20; c=30;
printf("%d,%d,%d\n",a,b,c);

Here, output will be 10, 20, 30

Have you ever thought about the argument specification?
No?
Okay, let’s discuss about it.

What is argument specification in printf?

We can specify the argument to print within the printf statement without changing the order of arguments (passing variables).

For Examples: statement printf("%d,%d,%d\n",a,b,c); will print 10, 20, 30

If we want to print 30, 20, 10 without changing the order of a,b,c, we can print do this.

How?

We have to just specify the number (index) of argument starting with 1 (Here, a is the first argument, b is the second and c is the third argument), with format specifier (%d).

Consider the statement:

printf("%3$d,%2$d,%1$d\n",a,b,c);

This statement will print the value of argument 3 first then argument 2 and then argument 1, thus output will be 30, 20, 10.

Consider the complete program:

#include <stdio.h>

int main()
{
	int a,b,c;
	a=10; b=20; c=30;

	//print in default order 
	printf("%d,%d,%d\n",a,b,c);
	//print with specifi the arggument indexing
	printf("%3$d,%2$d,%1$d\n",a,b,c);

	return 0;
}

Output

10,20,30
30,20,10





Was this page helpful? YES NO

Are you a blogger? Join our Blogging forum.



Comments and Discussions


We are using Google to publish ads on our website; Google has its own privacy policies. They may save log, cookies on your system. Google may also collect information of your system like IP address, region, city, country. For more details please go through the Google’s privacy policy.