Input output in C and size of a variable in C, in Hindi8 min read

आज हम सी में बुनियादी input output in C और size of a variable in C का पता लगाने के लिए विभिन्न तरीकों के बारे में जानेगे। क्या आप जानते हैं कि हम स्कैन में ampersand (&) का उपयोग क्यों कर रहे हैं और प्रिंटफ फ़ंक्शन में क्यों नहीं? चलिए देखते है।

To read this article in English, Click here!

पुनरीक्षण

पिछले लेख में हमने विभिन्न नियमों और विनियमों के बारे में सीखा है जो सी प्रोग्राम लेखन के संबंध में हैं। जैसे ग्राफिक कैरेक्टर, एस्केप सीक्वेंस, व्हाट्सएप कैरेक्टर, कीवर्ड्स, टोकन, आइडेंटिफायर, अलग अलग डाटा टाइप। आज इस ट्यूटोरियल में हम बुनियादी input output in C के बारे में जानेंगे।


परिचय

हर सी कंपाइलर में कुछ इनपुट और आउटपुट लाइब्रेरी फ़ंक्शन होते हैं जो इनपुट आउटपुट ऑपरेशन करने में सक्षम होते हैं। वे कार्य किसी भाषा का हिस्सा नहीं हैं, लेकिन उन्हें सभी I/O (इनपुट और आउटपुट) संचालन के लिए मानक माना जाता है।

लाइब्रेरी फंक्शन का सेट जो inout output ऑपरेशन करता है, वो मानक I / O लाइब्रेरी (standard I/O library) के रूप में जाना जाता है।

मूल I / O फ़ंक्शन के लिए C में लाइब्रेरी फ़ाइल है। जिसे नीचे दर्शाया गया है

#include<stdio.h>

stdio = std (Standard) + io (Input/Output)

असाइनमेंट स्टेटमेंट एक वेरिएबल को वैल्यू प्रदान करने का एक सरल तरीका है।

उदाहरण के लिए।

int data = 1010;
char r = 't';

यदि उपयोगकर्ता को कुछ डेटा दर्ज करने की आवश्यकता है, तो उपरोक्त विधि अमान्य है।

समाधान के रूप में दो विधियाँ उपलब्ध हैं

scanf() जो एक कीबोर्ड से इनपुट लेते हैं। हम रन टाइम में वेरिएबल को वैल्यू दे सकते हैं।

printf() का उपयोग आउटपुट के लिए किया जाता है।


फॉर्मेट विनिर्देशक (specifiers)

फ़ंक्शन printf() और scanf() दोनों डेटा के प्रकार और आकार को निर्दिष्ट करने के लिए फॉर्मेट स्पेसियर का उपयोग करते हैं।

फॉर्मेट विनिर्देशक एक प्रतिशत चिह्न (%) के साथ शुरू होते हैं, कुछ प्रारूप विनिर्देशक नीचे दिए गए हैं जो printf और scanf दोनों के लिए लागू है।

Conversion CharacterUsed for
%csingle char
%dSigned decimal integer
%uUnsigned decimal integer
%oUnsigned Octal integer
%x , %XUnsigned Hexadecimal (%x = a, b, c, d, e, f) (%X = A, B, C, D, E, F)
%fFloating point number
%eFloating point number in exponential format
%EFloating point number in exponential format but capital E
%sstring
%%print a % sine (for printf only)
%pprint a pointer in hexadecimal format (for printf only)

The size modifier h can be used with d, o, u, x, X to specify short integer.

The size modifier l can be used with d, f, e, E, g, G to specify long integer.

उदाहरण के लिए।

%ld = long int

%hd = short int

%lf = long double


इनपुट डेटा पढ़ना

एक सरलीकृत शब्द में: रीडिंग का मतलब है सी कोड पढ़ना; इनपुट डेटा का अर्थ है उपयोगकर्ता द्वारा दिए गए इनपुट डेटा को कीबोर्ड का उपयोग करके प्रोग्राम में भेजना।

कोड में इनपुट लेने के लिए हमारे पास एक लाइब्रेरी फंक्शन scanf() है जो stdio.h हैडर फाइल में स्थित है।

scanf() फ़ंक्शन सिंटैक्स नीचे दिया गया है।

scanf("control string", address1, address2, ......);

नियंत्रण स्ट्रिंग एक फॉर्मेट विनिर्देशक है। यह double quote में होना चाहिए।

एड्रेस एक वेरिएबल का एड्रेस है। एक ampersand (&) का उपयोग एड्रेस प्राप्त करने के लिए किया जाता है।

उदाहरण के लिए।

scanf("Result: %d", &data);

हम scanf में एक वेरिएबल के “&” (एड्रेस ) का उपयोग क्यों करते हैं?

एड्रेस का उपयोग करने का मुख्य कारण यह है कि हम मेमोरी ब्लॉक के अंदर डेटा (मान) लिख रहे हैं, इसलिए मेमोरी पर कुछ भी लिखने के लिए एक एड्रेस की आवश्यकता होती है जो एड्रेस देने का एक कारण है।

कई इनपुट के लिए हम अलग-अलग डेटा वैल्यू जैसे स्पेस, टैब या न्यूलाइन (डिफॉल्ट) को अलग करने के लिए एक सीमांकक का उपयोग करते हैं। एक विशिष्ट करैक्टर को दो फॉर्मेट निर्दिष्ट करैक्टर के बीच एक सीमांकक के रूप में भी रखा जा सकता है।

उदाहरण के लिए।

scanf("%d %c %f", &data, &ch, &marks);

इनपुट होना चाहिए:

1100 D 3.45 <press enter> //यहां डेटा को स्पेस या टैब द्वारा अलग किया जाता है।

अथवा

1100 <enter>

D <enter>

3.45 <enter> //यहां, डेटा को एक नई लाइन द्वारा अलग किया गया है।

scanf("%d:%f", &basic, &rha);

इनपुट होना चाहिए:

1500:33.6 <click enter> //यहां, डेटा : द्वारा अलग किए गए हैं

scanf("%d%f", &basic, &rha);

इनपुट होना चाहिए:

किसी भी तरह से आप इसे स्पेस सेपरेटर या टैब या न्यूलाइन द्वारा दे सकते हैं।

1500 33.6 <click enter>


आउटपुट डेटा लेखन

एक सरलीकृत शब्द में: लेखन का मतलब है कि सी कोड कंप्यूटर मेमोरी से डेटा लिख रहा है; आउटपुट डेटा का अर्थ है मानक आउटपुट डिवाइस (मॉनिटर) पर उपयोगकर्ता के लिए प्रोग्राम का आउटपुट।

Printf () लाइब्रेरी फंक्शन का उपयोग करके हम स्ट्रिंग, कैरेक्टर और न्यूमेरिक वैल्यूज प्रिंट कर सकते हैं।

प्रिंटफ () फ़ंक्शन सिंटैक्स नीचे दिया गया है:

printf("control string", variable1, variable2, ......);

कंटोल स्ट्रिंग में फ़ॉर्मेट स्पेसियर और टेक्स्ट होते हैं। एक वेरिएबल का नाम शुरू होने पर एक एम्परसेंड (&) नहीं होना चाहिए। यह केवल एक वेरिएबल नाम होना चाहिए।

क्यों हम printf() वेरिएबल में एक वेरिएबल के एड्रेस का उपयोग नहीं करते?

इसका कारण है, प्रिंटफ केवल आउटपुट के लिए है, आउटपुट का मतलब मेमोरी से पढ़ना है, मुख्य कार्य यह है की मेमोरी से पढ़ के डाटा स्क्रीन पर दिखता है।

उदाहरण के लिए।

printf("I love C language.\n");

आउटपुट:

I love C language.

printf("Enter your age : ");
scanf("%d", &age);

यहां, प्रिंटफ़ किसी भी फॉर्मेट विनिर्देशक (specifier) का उपयोग नहीं कर रहा है और इसका उपयोग एक संदेश प्रदर्शित करने के लिए किया गया है। यह उपयोगकर्ता को बताता है कि आपकी आयु दर्ज करें। अगला कथन स्कैनफ है जो उपयोगकर्ता के दर्ज मूल्य को आयु वेरिएबल के अंदर संग्रहीत करता है।

आउटपुट:

Enter your age : ____ <—- यहां उपयोगकर्ता अपनी उम्र दर्ज करेगा और एंटर दबाएगा।

printf("%d %f", data, marks);

यहां, दो फॉर्मेट विनिर्देशक (specifier) का उपयोग किया गया है।

आउटपुट:

99 31.5


अपने सिस्टम की C कम्पाइलर में एक वेरिएबल के माप की जांच कैसे करें?

C में एक वेरिएबल के माप की जाँच करने के लिए कुछ विधियाँ उपलब्ध हैं। पहला, sizeof ऑपरेटर का उपयोग करके जो bytes में एक वेरिएबल का माप देता है। दूसरा, रेंज के संदर्भ में एक वेरिएबल का माप प्राप्त करने के लिए सिस्टम लाइब्रेरी का उपयोग करके। हम दोनों को विस्तार से देखेंगे।

“sizeof ऑपरेटर” का उपयोग करके एक वेरिएबल का माप जांचें।

Sizeof ऑपरेटर C या C ++ में सबसे अधिक उपयोग किया जाता है।

यह एक संकलन-समय “यूनीरी ऑपरेटर” है जिसका उपयोग इसके ऑपरेंड के माप को प्राप्त करने के लिए किया जाता है।

“Sizeof” का आउटपुट unsigned integral है जिसे “size_t” द्वारा दर्शाया गया है।

इसे किसी भी डेटाटाइप पर लागू किया जा सकता है।

सिंटेक्स:

size_t sizeof(operand);

उदाहरण के लिए।

printf("%lu", sizeof(int));

अथवा

sizeOfInt = sizeof(int);

प्रायोगिक उपयोग:

यह कोड है,

 #include<stdio.h>
 
 int main(void)
 {
         printf("These are the size of a variable in my system.\n");
 
         printf("char = %lu \n", sizeof(char));
         printf("unsigned char  = %lu \n", sizeof(unsigned char));
         printf("int  = %lu \n", sizeof(int));
         printf("unsigned int = %lu \n", sizeof(unsigned int));
         printf("short int = %lu \n", sizeof(short int));
         printf("unsigned short int = %lu \n", sizeof(unsigned short int));
         printf("long int = %lu \n", sizeof(long int));
         printf("unsigned long int = %lu \n", sizeof(unsigned long int));
         printf("float = %lu \n", sizeof(float));
         printf("double = %lu \n", sizeof(double));
         printf("long double = %lu \n", sizeof(long double));
         return 0;
 }
code for checking a size of a variable in c using sizeof operator with input output in c

मेरे सिस्टम के लिए जेनरेट किया गया आउटपुट है

These are the size of a variable in my system.
char = 1 
unsigned char  = 1 
int  = 4 
unsigned int = 4 
short int = 2 
unsigned short int = 2 
long int = 8 
unsigned long int = 8 
float = 4 
double = 8 
long double = 16 
generated output for sizeof variable to check sizeof a variable in c

header फ़ाइल का उपयोग करके c में वेरिएबल का माप जांचें

इंटीग्रल प्रकार के डेटाटाइप की सीमा limit.h हेडर फ़ाइल में दी गई है और फ्लोटिंग-पॉइंट प्रकार डेटाटाइप की रेंज float.h में दी गई है

इस कोड की जाँच करें:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    printf("\n\n");
    
    printf("Storage size for float : %lu \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

आउटपुट:

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535


Storage size for float : 4 
FLT_MAX     :   3.40282e+38
FLT_MIN     :   1.17549e-38
-FLT_MAX    :   -3.40282e+38
-FLT_MIN    :   -1.17549e-38
DBL_MAX     :   1.79769e+308
DBL_MIN     :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6
Generated output by using header file and limits to get size of a variable in a C using basic input output operation in c

निष्कर्ष

संक्षेप में, हमने C भाषा में मूल input output करने के लिए printf और scanf फ़ंक्शन का उपयोग कैसे कर सकते हैं। इसके अलावा, हमने एक विशेष प्रणाली के लिए C में एक वैरिएबल का माप का पता लगाने के लिए दो तरीके सीखे।


असाइनमेंट

  • अपने कंप्यूटर के C वेरिएबल का माप ढूंढें और उसे नीचे टिप्पणी करें।
  • input output in c के लिए अभ्यास करें।
    • Write a program to take input from user Name, Age, Birthdate, and hobby. and print all of them.

नोट: समाधान के लिए हमारे फेसबुक समूह में पूछें या देखें।


Leave a Comment