C زبان کے printf scanf اورکچھ hidden pearls
مصنف: ڈاکٹر نعمان اسلام
تاریخ : 3 مارچ 2020
قاریؑن- آج کے آرٹیکل میں ہم C زبان کے کچھ ایسے features کا تذکرہ کریں گے جو عام لوگوں کو معلوم نہیں- یہ فیچرز printf اور scanf کے فنکشنز کے متعلق ہیں-
1- انٹیجر کو پرنٹ کرنا:
C زبان میں کسی بھی انٹیجر کو پرنٹ کرنے کے لیے درج ذیل فارمیٹ اسپیسیفایؑر کو استعمال کیا جاتا ہے-
d – ڈیسیمل میں پرنٹ کرنے کے لیے
o – اوکٹل میں پرنٹ کرنے کے لیے
u – unsigned انٹیجر کو پرنٹ کرنے کے لیے
x – hexadecimal میں پرنٹ کرنے کے لیے
Code:
int a = 100;
printf("\nValue of a in decimal is : %d", a);
printf("\nValue of a in octal is : %o", a);
printf("\nValue of a in hexa-decimal is : %x", a);
Output:
Value of a in decimal is : 100
Value of a in octal is : 144
Value of a in hexa-decimal is : 64
ان تمام اسپیسیفایؑرز کے ساتھ آپ width بھی بتا سکتے ہیں کہ آوؑٹ پٹ کو کتنے کیریکٹرز پر پرنٹ کرنا ہے- ساتھ میں منفی کے سایؑن سے alignment بھی بتا سکتے ہیں-
Code:
int x=99;
printf("\nThe number right aligned is: %5d. Thank you.",x);
printf("\nThe number left aligned is: %-5d. Thank you.",x);
Output:
The number right aligned is: 99. Thank you.
The number left aligned is: 99 . Thank you.
اوپر کی مثال میں نمبر left اور right align ہوا ہے سایؑن کے حساب سے- اور 99 کو 5 کیریکٹرز میں آوؑٹ پٹ کیا گیا ہے جس کی وجہ سے اضافی اسپیس آ رہا ہے-
%n - 2 – ان کیریکٹرز کی تعداد جو کہ اب تک پرنٹ ہو چکے ہیں-
اگر آپ چاہتے ہیں کہ یہ معلوم کر سکیں کہ اب تک کتنے کیریکٹرز پرنٹ ہو چکے ہیں تو %n استعمال کر سکتے ہیں-
Code:
int n;
printf("The brown fox jumps quickly over the lazy dog %n",&n);
printf("%d",n);
Output:
The brown fox jumps quickly over the lazy dog 46
3- Printf کے return value کو پرنٹ کرنا-
Printf نہ صرف یہ کہ پرنٹ کرتا ہے بلکہ یہ کیریکٹرز کی تعداد بھی پرنٹ کرتا ہے- مثال کے طور پر درج ذیل کوڈ کو دیکھیں-
Code:
int x;
x= printf("The brown fox jumps quickly over the lazy dog.");
printf("\n%d",x);
Output:
The brown fox jumps quickly over the lazy dog.
46
4- Hexadecimal میں انپٹ لینا-
Scanf میں %x کے ذریعے آپ ہیکس میں انپٹ لے سکتے ہیں- اسی طرح آپ %o بھی استعمال کر سکتے ہیں-
Code:
int x;
scanf("%x",&x);
printf("The hexadecimal value in decimal is : %d\n",x);
scanf("%o",&x);
printf("The octal value in decimal is : %d",x);
Output:
0xff
The hexadecimal value in decimal is : 255
076
The octal value in decimal is : 62
5- مخصوص کیریکٹرز کو انپٹ لینا-
آپ scanf میں بتا سکتے ہیں کہ آپ کس طرح کا کیریکٹر انپٹ لینا چاہتے ہیں- مثلاؑ آپ کہ سکتے ہیں کہ صرف vowels انپٹ آےؑ-
Code:
char s[10];
scanf("%[aeiou]",s);
printf("%s",s);
Output:
aero
ae
اگر آپ چاہیں تو اپنی مرضی کے کیریکٹرز کو exclude کرسکتے ہیں-
Code:
char s[10];
printf("Enter character without vowel: ");
scanf("%[^aeiou]",s);
printf("%s",s);
Output:
Enter character without vowel: brown
br
6- floating point numbers کو فارمیٹ کرنا-
جس طر آپ انٹیجر کی width بتاتے ہیں اسی طرح float کے ساتھ بھی width بتا سکتے ہیں- اسی طرح آپ scientific notation میں بھی پرنٹ کر سکتے ہیں-
Code:
float x= 9.79;
printf("\nThe value of x is: %5.3f",x);
printf("\nThe value in exponential notation x is: %e",x);
Output:
The value of x is: 9.790
The value in exponential notation x is: 9.790000e+000
قاریؑن- آج کے آرٹیکل میں ہم نے C کے printf/ scanf کے کچھ advanced فیچرز کا مطالعہ کیا- اپنی راۓ سے ضرور آگاہ کریے گا-