How to get Formatted Output in C Language?

Formatted Output in C Language: जिस तरह विशेष Format में Data Input किया जा सकता है उसी तरह हम Control Strings के साथ कुछ flags का प्रयोग करके Output को भी विशेष Format में प्राप्त कर सकते हैं। 

चूंकि, किसी भी Programming Language में मूल रूप से Integer, Floating Point, CharacterString यानी कुल 4 प्रकार के Data होते हैं, इसलिए C Language में इन चारों प्रकार के Data को Formatted तरीके से Output में Display करने के लिए हम विभिन्‍न प्रकार के Control Strings के साथ कुछ Special Flags का प्रयोग कर सकते हैं, जिनके बारे में इस Article में Discuss किया गया है।

Working With Integer Numbers

इसका Syntax निम्नानुसार होता है-

Syntax:-          % w.p Type Specifier

Wयह बताता है कि कुल कितने Columns में Output Print होगा।
Pयह बताता है कि दशमलव के बाद कितने अंकों तक मान प्राप्त होगा।
Type Specifierयह बताता है कि किस Data Type का Data Input किया जा रहा है। Integer, Float, Character या String प्रकार का।

जब हम Integers के साथ काम करते हैं तब W वह न्यूनतम Width बताता है, जितने में Output प्राप्त होना है। जैसे निम्न उदाहरण देखियेः

माना a = 12345 है तो निम्न Statements निम्न Output Print करेंगे-

printf(“%d”, a);

यह Output में 12345 पांचो अंक print करेगा।

12345

printf(“%3d”, a);
यह मान को उसी प्रकार प्रिंट करेगा जिस तरह ऊपर प्रिंट हुआ है।

12345

printf(“%10d”, a);
यह Screen पर 10 Column Reserve करेगा और Right Side से पांचो अंक प्रिंट करेगा क्योंकि मान हमेंशा Right Side से ही Screen पर प्रिन्‍ट होता है। इसे निम्न चित्रानुसार समझा जा सकता हैः

12345

printf(“%010d”, a);
इस Statement से Compiler screen की दस column Reserve करेगा और Right Side से मान प्रिंट करेगा लेकिन Left Side के जो पांच स्थान खाली बचते हैं उसमें पांच 0 भर देगा। देखें निम्न चित्रः

0000012345

printf(“%-10d”, a);   
यह Screen पर 10 columns Reserve करेगा लेकिन संख्‍याऐं Left Side से ही Print करेगा क्योंकि Flage के रूप में Minus भी लिया गया है। इस Statement का Output निम्नानुसार प्रिंट होगाः

12345
/* Integer Formatted Output */
#include <stdio.h>
#include <conio.h>

main()
{ 
int a;
a = 12345;
clrscr();

printf(“n A is %d”, a);
printf(“n A is %3d”,a);
printf(“n A is %10d”,a);
printf(“n A is %-10d”,a);
printf(“n A is %010d”,a);
getch();
} 

Output
A is 12345
A is 12345
A is      12345
A is 12345
A is 0000012345

 

Working With Real Numbers

जब Float प्रकार की संख्‍याओं को विशेष Formatting में Screen पर प्रिंट करना होता है, तब हमें निम्न Syntax को printf() Function के Control String के साथ प्रयोग करना होता हैः

For Real Numbers           %w.p f
For Exponent Numbers    %w.p e      यहां

Wइसमें वह संख्‍या दी जाती है जितने अंकों तक का मान हमें screen पर print करवाना है। जैसे हमें कुल 10 अंकों में Value को print करना हो तो % के बाद 10 लिखा जाता है।
P इसमें यह बताया जाता है कि दशमलव के बाद कितने अंकों तक के मान को Screen पर print करना है। जैसे दसमलव के बाद 4 अंकों तक के मान को Screen पर Print करवाना हो व कुल दस अंकों में मान Print करवाना हो तो Control String के रूप में हमें %10.4 लिखना होगा।
Fयह Compiler को बताता है कि Print किया जाने वाला मान Float प्रकार के Data Type का मान है।
Eयह बताता है कि print होने वाला मान घातांक रूप में प्रिंट होगा।

Float प्रकार के Data Type का Variable जब Screen पर Print करते हैं तो Print होने वाला मान हमेंशा दशमलव के बाद 6 अंकों तक के मान को Print करता है। साथ ही Print होने वाला हर मान यहां भी Right Justified रूप में ही Print होता है। यदि हमें Left Side से Value को Print करना हो तो (Minus) – Flag का प्रयोग करना पडता है। मानलो x =12345.6789 है, तो निम्न अलग-अलग Statements निम्न Format में Output Print करेंगेः

printf(“%10.4f”, x);  

ये Statement कुल 10 अंको का मान Output में Print करेगा और दशमलव के बाद के चार अंक Print करेगा।

12345.6789

printf(“%10.2f”, x);

यहां दशमलव के बाद कुल दो अंक प्रिंट होंगे और Output में कुल दस अंक Print हो सकेंगे।

12345.67

जैसा कि चित्र में दिखाया गया है कुल Space तो 10 Reserve होंगे लेकिन Output में केवल आठ ही अंक Print होंगे क्योंकि दशमलव के बाद केवल दो अंक ही प्रिंट होंगे। इसलिये आगे के दो अंको की जगह खाली ही रहेगी।

printf(“%-10.2f”, x);

यहां पर कुल दस Space Reserve होंगे और दशमलव के बाद दो अंकों तक संख्‍या Print होगी शेष जगह खाली रहेगी, लेकिन यहां हमने – चिन्ह प्रयोग किया है इसलिये संख्‍या Left Justified Print होगी। देखें निम्न चित्र

12345.67

printf(“%f”, x);

यह Statement x की पूरी Value को print करेगा। चूंकि Float Variable दशमलव के बाद 6 अंकों तक के मान को Screen पर Print करता है और यहां पर दशमलव के बाद केवल 4 ही अंक हैं इसलिये बाकी के अंक Garbage Value के प्राप्त हो जाते हैं।

12345.6789

printf(“%*.*f”, w, p, x);

यह Statement बिल्कुल उसी प्रकार है जिस प्रकार अन्य Statements हैं। फर्क बस इतना ही है कि इस Statement में width व precision को Control String के साथ ना लिख कर Variable के साथ लिखा जाता है। इसमें यदि w की जगह 10 व p की जगह 2 लिख दिया जाए तो Output निम्नानुसार प्राप्त होगा जो कि %10.2f के समान ही है।

12345.6

7

जिस तरह Float प्रकार के Variables को विभिन्न Format में प्रिंट करते हैं, उसी तरह हम घातांक मानों को भी विभिन्न प्रकार से प्रिट कर सकते हैं। जब हमें संख्‍या को घातांक रूप में प्रिंट करना होता है तब मात्र f के स्थान पर e का प्रयोग करते हैं और बाकी की सारी Formatting समान रखी जाती है। निम्नानुसार कुछ उदाहरण बताए जा रहे हैं लेकिन इन्हीं उदाहरणों में मामूली से बदलाव करके विभिन्न Format प्राप्त किये जा सकते हैं:

printf(“%e”, x);   
यह Statement निम्न Output देगा, क्योंकि सारा मान घातांक रूप में बदल जाएगा।

1.234568e+04

printf(“%10.2e”, x);  
यह Statement दस Space Reserve करेगा और दशमलव के बाद दो अंक दर्शाएगा।

1.23e+04

printf(“%-10.2e”, x);

यह Statement दस Space Reserve करेगा और दशमलव के बाद दो अंक Print करेगा लेकिन Print होने वाला मान Left Justified Print होगा क्योंकि Control String के साथ – Flage का प्रयोग किया गया है।

1.23e+04

printf(“%10.2e”, -x);

यह Statement दस Space reserve करेगा और दशमलव के बाद के दो अंकों को Print करेगा साथ ही संख्‍या को ऋणात्मक Format में प्रिंट करेगा क्योंकि Variable के सामने Minus का चिन्ह प्रयोग किया गया है।

1.23e+04

इन सभी उदाहरणों को निम्नानुसार एक ही प्रोग्राम द्वारा समझा जा सकता है। ये प्रोग्राम बना कर रन कीजिये और देखिये कि किस प्रकार का Formatted Output प्राप्त होता हैः

/* Formatted Output with Float and Exponential Values */
#include <stdio.h>
#include <conio.h>

main()
{
float x = 12345.6789;
clrscr();

printf(“n X is %f”, x);
printf(“n X is %e”, x);
printf(“n X is %10.2f”, x);
printf(“n X is %10.2e”, x);
printf(“n X is %-10.2f”, x);
printf(“n X is %-10.2e”, x);
printf(“n X is %*.*f”, 10, 2, x);
printf(“n X is %e”, 10, 2, x);
printf(“n X is %f”, -x);
printf(“n X is %e”, -x);
getch();
}

Output
X is 12345.678989
X is 1.234568e+04
X is      12345.67
X is        1.23e+04
X is 12345.67
X is 1.23e+04
X is      12345.67
X is        1.23e+04
X is -12345.678989
X is -1.234568e+04

 इनके अलावा Characters व Strings को भी हम विभिन्‍न प्रकार की जरूरतों को पूरा करने के लिए विभिन्‍न तरीकों से Format कर सकते हैं और Fomatting करने के लिए Control Strings के साथ विभिन्‍न प्रकार के Flags Use कर सकते हैं।

इन विभिन्‍न प्रकार के Input व Output Flags के बारे में C Programming Language in Hindi पुस्‍तक में विस्‍तार से Discuss किया गया है। इसलिए यदि आप चाहें तो C Language के Input व Output Formatting को और ज्‍यादा बेहतर तरीके से समझने के लिए आप इस पुस्‍तक की मदद ले सकते हैं, जो कि काफी सरल भाषा में लिखी गई है। साथ ही इस पुस्‍तक में विभिन्‍न Programming Concepts को बेहतर तरीके से समझाने के लिए विभिन्‍न प्रकार के Real Life Practical Examples को भी Discuss किया गया है, जबकि सामान्‍यत: Programming Language पर आधारित अन्‍य पुस्‍तकों में इस बात पर विशेष ध्‍यान नहीं दिया गया होता है। (Formatted Output in C Language)

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS