Scanf( ) Function
scanf( ) Function
Computer से
जितने Devices Connected होते है , उन सभी Devices की अपनी स्वंय की Memory होती है , जिसे Temporary
Buffer कहा जाता है | Keyboard
, Monitor , Mouse , Printer आदि सबका अपना Temporary Buffer
होता है | हम
Keyboard
से जब भी किसी Key को Press करते है , तो उस Key की Information
Directly Computer की RAM में जा कर Store
नहीं होती है , जहां से हमारे Computer का CPU
उस Key की information को
Computer के RAM में Store करता है |
ठीक इसी तरह से
जब हम हमारे Computer के Monitor पर किसी Message को Print करना
चाहते है , तो वास्तव में हम Message को Print करने के लिए Computer के Monitor को नहीं भेज रहे होते है , बल्कि हम उस Printable को
Computer के Graphics Buffer में भेज
रहे होते है , जहां से हमारा Monitor Printable Message की Information
को प्राप्त करके Monitor पर Display कर देता है |
जब हम printf(
) Function को use करके किसी Message को Monitor पर Display करना
चाहते है , तब हम उस Message या Data को Printf( )
Function में एक String Argument के रूप में
भेज देते है | printf( )
function उस String Message को Computer
की Memory से प्राप्त करके Monitor के Graphics Buffer में Store कर
देता है और इस Graphics Buffer में Stored Data को हमारा Monitor अपने Screen पर
Display कर देता है |
इसी तरह से जब हम
Keyboard
से किसी Input को प्राप्त करना चाहते है , scanf( ) Function keyboard पर Press की गई keys की Information
को keyboard के Buffer से
प्राप्त करता है और उन keys की Information को scanf( ) Function में Specify किया गए Varibale
Identifier की Storage Location पर Store
कर देता है |
दूसरे शब्दों में
कहें तो जब हम Memory में Stored किसी Data को Monitor पर Display
करना चाहते है , तब prinf( ) Function में
विभन्न Identifiers को Specify करके हम
हमारे computer को ये बताते है की हमें Memory की किस Location पर Stored Data को Screen पर Display करना है
और विभन्न प्रकार के Control Strings का प्रयोग करके हम
हमारे Computer को ये बताते है की विभन्न Identifiers
द्वारा Specify किए जा रहे Data को Monitor के Screen को किस Location
पर Format में Display करना
है |
इसी तरह से जब हम
Keyboard
से किसी Data को Input के
रूप में प्राप्त करके किसी Memory Location पर Store करना चाहते है , तब जिस Data Type के Data को Keyboard से Receive करना
चाहते है , उस Data Type के Control String को scanf( ) Function में specify करते है और Keyboard से आने वाले Data को Memory के जिस Storage Location पर Store करना चाहते है , scanf( ) function में उस Storage Location के Variable
Identifier का नाम address Operator ( & ) के साथ Specify करते है |
जिस तरह printf(
) Function के साथ हम विभन्न प्रकार के Control Strings का प्रयोग करके विभन्न प्रकार के Identifiers के
मानों को Output में Print करते है ,
उसी तरह से विभन्न प्रकार के Data Type के मानों को Keyboard
Buffer से प्राप्त करके विभन्न प्रकार के Identifiers में Store करने के लिए भी हम विभन्न प्रकार के control
Strings का प्रयोग कर सकते है |
printf(
) Function के साथ जो Control String जिस Data
Type से Related होता है scanf( )
Function में भी वह Control String उसे Data
Type को Associated होता है |
scanf(
) Function के साथ use किए जा सकने वाले Control
Strings निम्नानुसार है |
%d Keyboard से Integer Data
Type के मान को प्राप्त करने के लिए |
%c Keyboard से Character
Data Type के मान को प्राप्त करने के लिए |
%f Keyboard से Floating
Point Real Data Type के मान को प्राप्त करने के लिए |
%g Keyboard से Floating
Point Real Data Type के मान को प्राप्त करने के लिए |
%e Keyboard से Floating
Point Real Data Type के मान को प्राप्त करने के लिए |
%i keyboard से Signed
Decimal Integer Data Type के मान को प्राप्त करने के लिए |
%u Keyboard से Unsigned
Decimal Integer Data Type के मान को प्राप्त करते के लिए |
%o keyboard से Octal
Integer Data Type के मान को प्राप्त करने के लिए |
%s Keyboard से String को प्राप्त करने के लिए |
%x Keyboard से Hexadecimal
Data Type के मान को प्राप्त करने के लिए |
%[…] Keyboard से String को प्राप्त करने के लिए |
scanf( ) Function
printf( ) Function की तुलना में एक अधिक Control String को Support करता है |
scanf(
) Function का syntax निम्नानुसार है :
इस Syntax में CntrlStr ये तय करती है की Keyboard से किसी Data Type का Data scanf( ) Function Receive करेगा , जबकि Identifier उस Memory Location को Represent करता है , जहां पर Keyboard से आने वाले Data को Store करना है | इस Function में भी Control Strings जिस क्रम में Specify किए जाते है , उसी क्रम में आने वाले Data भी Memory में Store होते है |
उदाहरण के लिए CntrlStr1
Identifier1 से , CntrlStr2 Identifier2 से व CntrlStrN
IdentifierN से Associated है , इसलिए Keyboard
से आने वाला CntrlStr1 Type का सबसे पहला मान Identifier1
की Storage Location पर Store होगा , दूसरे Number
पर आने वाले CntrlStr2 Type का मान Identifier2
के Memory Location पर Store होगा और सबसे बाद में आने वाला CntrlStrN Type का
मान IdentifierN नाम के Identifier द्वारा
Represent होने वाला Memory Location पर
Store होगा |
&
Operator को Address Operator कहा जाता है |
ये
एक Unary
Operator है | ये Operator हमेशा
उस Identifier के Memory Location का Address
Return करता है , जिसके साथ इसे Use किया जाता
है |
जब हम Program
के Run Time के Keyboard से किसी Data को Receive करके
उस पर Processing करना चाहते है , तब scanf( )
Function द्वारा computer को हमें दो बाते
बताने पडती है पहली ये की हम Keyboard से किसी प्रकार के Data
को Read करना कहते है |
Keyboard
से Read किए जाने वाले Data के Data Type को Specify करने
के लिए उपयुक्त Control String का प्रयोग किया जाता है |
Computer को
दूसरी बात ये बतानी होती है , की Keyboard से आने वाले Data Memory की किसी Location पर Store होगा |
यानी
दूसरी बात के रूप में हमें Computer को उस Memory Location का Address बताना होता है , जहां पर हम Keyboard
से आने वाले Data को Store करना चाहते है |
जैसाकि हमने पहले
भी कहा की & Operator किसी भी Identifier
का Address Return करने का काम करता है ,
इसलिए हमें जिस Identifier की Memory Location पर Keyboard से आने वाले Data को
Store करना होता है , उस Identifier के
नाम के पहले हम & Operator का प्रयोग उस Identifier
को scanf( ) Function से specify कर देते है |
चूंकि scanf(
) Function का प्रयोग Keyboard से Input
प्राप्त करने के लिए किया जाता है , इसलिए इस Function का प्रयोग करने से पहले हमें उस Data Type का एक Variable
Identifier Create करना जरुरी होता है , जिसमे scanf( ) Function
द्वारा Keyboard से आने वाले Data को Store करना चाहते है |
बिना Variable
Create किए हुए हम scanf( ) Function का प्रयोग
नहीं कर सकते है, क्योंकि इस Function में हमें उस Identifier
का नाम Address Operator के साथ Specify
करना पड़ता है जिसकी Memory Location पर हम keyboard
से आने वाले मान को store करना चाहते है |
यदि
हम बिना Variable
Create किए scanf( ) Function को use करते है , तो “C” का Compiler compile Time
Error Generate करके हमें ऐसा करने से रोक देता है |
No comments