प्रौद्योगिकी साझेदारी

C भाषा - printf, scanf, अन्ये इनपुट् तथा आउटपुट् कार्याणि

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

printf फ़ंक्शन

1.printf कार्यस्य सामान्यस्वरूपम्:


printf फंक्शन् इत्यस्य सामान्यं प्रारूपं printf (format control, output list) अस्ति ।
उदाहरणतया:

printf("%d,%cn",i,c);

(१) "स्वरूपनियन्त्रणम्" ।

इदं द्विगुण-अपोस्ट्रोफी-मध्ये निबद्धं स्ट्रिंग् अस्ति, यत् "conversion control string", अथवा संक्षेपेण "format string" इति उच्यते । अस्मिन् द्वौ सूचनाखण्डौ समाविष्टौ स्तः- १.
1 प्रारूपकथनम्। प्रारूपघोषणायां "%" तथा प्रारूपवर्णाः सन्ति, यथा %d, %f इत्यादयः । अस्य कार्यं निर्गमदत्तांशं निर्दिष्टस्वरूपे परिवर्तयितुं ततः निर्गमं कर्तुं च भवति । प्रारूपघोषणा सर्वदा "%" वर्णेन आरभ्यते ।

तेषु : d दशमलवपूर्णाङ्कं प्रतिनिधियति, c एकं वर्णं प्रतिनिधियति, s बहुवर्णान् प्रतिनिधियति, f दशमलवरूपेण निर्गमं प्रतिनिधियति, p मुद्रणस्मृतिपतेः प्रतिनिधित्वं करोति, यत् षट्दशमलवरूपेण अपि निर्गमं भवति The output address uses चर पता संचालन प्रतीक &.
२ साधारणवर्णाः । साधारणाः वर्णाः ते वर्णाः सन्ति येषां आउटपुट्-काले अपरिवर्तितं आउटपुट् करणीयम् । यथा, उपरि printf फंक्शन् मध्ये डबल अल्पविरामस्य अन्तः अल्पविरामाः, रिक्तस्थानानि, नवीनरेखाः च अन्यवर्णान् अपि समाविष्टुं शक्नुवन्ति ।


(2) "निर्गम सारणी स्तम्भ"।

इदं किञ्चित् दत्तांशं यत् प्रोग्राम् इत्यस्य आउटपुट् कर्तुं आवश्यकं भवति, यत् नित्यं, चरः वा अभिव्यक्तिः वा भवितुम् अर्हति ।

टीका:
(1) बलात् रूपान्तरणम् : पूर्णाङ्कान् दशमलवेषु परिवर्तयन्तु
  1. int data = 10;
  2. int chushu = 3;
  3. float result;
  4. result = (float)data/chushu;
(2) दत्तांशविस्तारं दशमलवस्थानानां संख्यां च निर्दिशन्तु, %m.nf इत्यस्य उपयोगं कुर्वन्तु
"%7.2" प्रारूपस्य उपयोगः कृतः यत् निर्गमदत्तांशः 7 स्तम्भान् व्याप्नोति, यत्र 2 दशमलवस्थानानि सन्ति । अन्तिमः अङ्कः गोलः भवति अर्थात् अनुमानितं मूल्यं ऊर्ध्वं अधः वा गृह्यते । यदि तथागतः दशमलवभागं 0 इति निर्दिशति तर्हि न केवलं दशमलवः निर्गमः न भविष्यति, अपितु दशमलवबिन्दुः अपि निर्गमः न भविष्यति । अतः दशमलवस्थानानां संख्यां 0 इति सहजतया न निर्दिशन्तु ।
(3) आउटपुट् दत्तांशः वामभागे संरेखितः भवति, %-m.nf इत्यस्य उपयोगेन
m तथा n इत्येतयोः पुरतः ऋणात्मकं चिह्नं योजयित्वा मूलतः %m.nf रूपस्य समानः प्रभावः भवति तथापि यदा दत्तांशदीर्घता m इत्यस्मात् अधिकं न भवति तदा दत्तांशः वामभागे स्थानान्तरितः भवति तथा च दक्षिणे अन्ते रिक्तस्थानानि पूर्यन्ते

scanf फ़ंक्शन

1.scanf कार्यस्य सामान्यरूपम्


scanf (स्वरूपनियन्त्रणम्, पतासारणीस्तम्भः) २.

"format control" इत्यस्य अर्थः printf फंक्शन् इत्यस्य समानः अस्ति । "Address table column" इति अनेकैः पताभिः निर्मितः सारणीस्तम्भः, यः चरस्य पता अथवा स्ट्रिंग् इत्यस्य प्रथमं पता भवितुम् अर्हति ।


2.scanf फंक्शन् मध्ये ध्वनिं स्वरूपयन्तु


printf फंक्शन् इत्यस्मिन् format declaration इत्यस्य सदृशं % इत्यनेन आरभ्य format character इत्यनेन समाप्तं भवति, मध्ये अतिरिक्तवर्णाः सम्मिलितुं शक्यन्ते ।
scanf फंक्शन् पुनः निम्नलिखितरूपेण लिखितुं शक्यते

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


प्रारूपघोषणा %f इत्यस्य अतिरिक्तं प्रारूपमालायां केचन साधारणाः वर्णाः ("a=", "b=" तथा "," च समाविष्टाः) अपि सन्ति ।

टीका:

(1)पता चिह्न & .

scanf फंक्शन् इत्यस्मिन् "format control" इत्यस्य अनन्तरं चर-सङ्केतः भवितव्यम्, न तु चर-नाम ।यथा, यदि a तथा b पूर्णाङ्कचरौ स्तः, यदि इति लिखितम्

scaní("%f%f%f",a,b,c);

गलतः अस्ति। "क,ख,ग" "&a,&b,&c" इति परिवर्तनीयम् । बहवः आरम्भकाः एतां त्रुटिं कुर्वन्ति।

(2)यथावत् प्रविशतु

यदि "format control string" इत्यस्मिन् format declaration इत्यस्य अतिरिक्तं अन्ये वर्णाः सन्ति तर्हि दत्तांशप्रवेशकाले एतेषां वर्णानाम् समानानि वर्णाः तत्सम्बद्धेषु स्थानेषु प्रविष्टव्याःअस्ति चेत्

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

दत्तांशप्रवेशकाले तत्सम्बद्धस्थानेषु समानानि वर्णाः प्रविष्टव्यानि ।अर्थात् निवेश
a=1,b=3,c=2 (निवेशसामग्री प्रति ध्यानं ददातु)

अतः, scanf मध्ये रिक्तस्थानानि वा अल्पविरामाः अन्ये च चिह्नानि न योजयन्तु (यदि रिक्तस्थानानि सन्ति तर्हि newline input इत्यस्य उपयोगः ठीकः), केवलं आवश्यकं input data प्रत्यक्षतया लिखन्तु:

scanf("%d%d%f",&data,&data1,&data2);
(3) वर्णनिवेशः

"%c" प्रारूपेण निवेशवर्णान् घोषयति समये "escape characters" इत्यस्मिन् स्पेस वर्णाः वर्णाः च वैधवर्णरूपेण प्रविष्टाः भवन्ति, यथा:
 

scanf("%c%c%c,&c1,&c2,&c3);

एतत् कार्यं निष्पादयन्ते सति भवन्तः मध्ये रिक्तस्थानानि विना ३ क्रमशः वर्णाः प्रविष्टव्याः ।
द्वयोः वर्णयोः मध्ये अवकाशं प्रविष्टुं दोषः स्यात् ।

रिक्तस्थानानि नवरेखाः च वर्णाः सन्ति, निवेशं कुर्वन् रिक्तस्थानानि वा नवीनरेखाः वा उपयोक्तुं न शक्नुवन्ति ।

(4) मिश्रितनिवेश

संख्यात्मकदत्तांशं निवेशयन्ते सति यदि भवान् रिक्तस्थानं, कैरिज रिटर्न्, Tab कीलम् प्रविशति अथवा अवैधवर्णानां (अक्षराणां (अक्षराणां यत् संख्यात्मकमूल्यानां न भवति) सम्मुखीभवति तर्हि दत्तांशः समाप्तः इति मन्यते उदाहरणतया:
 

scanf("%d%c%f,&a,&b,&c);

सम्यक् निवेशः अस्ति : 1234h7.6

प्रथमः दत्तांशः %d प्रारूपेण सह सङ्गतः भवति 1234 इति वर्णस्य सम्मुखीभवति अतः प्रणाली मन्यते यत् 1234 इति मूल्यस्य अनन्तरं अङ्काः नास्ति एकः। तदनन्तरं 'h' वर्णं b वर्णचरं प्रति प्रेषयन्तु यतः %c केवलं एकस्य वर्णस्य निवेशः आवश्यकः अस्ति, अतः प्रणाली वर्णस्य निवेशः समाप्तः इति निर्धारयति, अतः निवेशवर्णस्य अनन्तरं रिक्तस्थानं योजयितुं आवश्यकता नास्ति ह' । 'h' वर्णस्य अनन्तरं मूल्यं c चरं प्रति प्रेषयितव्यम् । यदि 1230.26 प्रमादात् 123o.26 इति भ्रान्त्या टङ्कितं भवति तर्हि 123 इत्यस्य अनन्तरं o अक्षरस्य दृश्यतायाः कारणात् संख्यात्मकदत्तांशः अत्र समाप्तः भवति, निम्नलिखितवर्णाः न पठ्यन्ते इति मन्यते

अतः यदा वयं भिन्नप्रकारस्य दत्तांशस्य निवेशं कुर्मः तदा प्रकारेण तदनुरूपं scanf फंक्शन् करणीयम् अस्ति ।

(5) बहुविधं scanf कार्यम्

यदा कस्मिन् अपि कार्यक्रमे द्वौ वा अधिकौ scanf फंक्शन् भवति तदा उत्तरं scanf फंक्शन् पूर्वस्य scanf फंक्शन् इत्यस्य इनपुट् इत्यस्य अनन्तरं newline वर्णं स्वस्य input इति गणयिष्यति फलतः उत्तरं scanf function सामान्यतया input प्राप्तुं न शक्नोति, अतः तस्य उपयोगः अवश्यं करणीयः scanf फंक्शन् द्वयोः मध्ये अतिरिक्तं newline वर्णं अवशोषयितुं getchar() सम्मिलितं कुर्वन्तु ।

अन्ये निवेश-निर्गम-कार्यं : १.

puts: मुद्रणात् भेदःf
(1) स्वयमेव रेखाविरामं योजयन्तु
(2).printf विविधानि आउटपुट् पैटर्न्स् समर्थयति, puts च आउटपुट् स्ट्रिंग् अस्ति ।

गेटचर्、पुतचर

निवेशः निर्गमः च अभ्यासाः : १.

1. बृहत् अक्षराणि प्रविश्य लघु अक्षराणि निर्गच्छतु

अत्र ASCII कोडस्य ज्ञानस्य उपयोगः भवति ।

अतः कोड उदाहरणम् अस्ति

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a;
  5. char b;
  6. printf("请输入一个大写字母:");
  7. scanf("%c",&a);
  8. b = a+32;
  9. printf("其对应的小写字母为:%c",b);
  10. return 0;
  11. }