I/O, C भाषा में इनपुट-आउटपुट फ़ंक्शन को संदर्भित करता है।
उच्च स्तरीय I/O
- इन्हें मनुष्य आसानी से समझ लेता है
- लाभ पोर्टेबिलिटी है।
निम्न स्तर I/O
- इन्हें कंप्यूटर द्वारा आसानी से समझा जा सकता है।
- लाभ यह है कि निष्पादन का समय कम है।
- नुकसान यह है कि गैर पोर्टेबिलिटी।
उच्च स्तरीय I/O कार्य
उच्च स्तरीय इनपुट-आउटपुट (I/O) फ़ंक्शन नीचे दिए गए हैं -
| Function | विवरण |
|---|---|
| fprintf ( ) | एक फ़ाइल में डेटा लिखें |
| fscanf ( ) | फ़ाइल से डेटा पढ़ें |
| putc ( )/ fputc() | एक फ़ाइल में एक वर्ण लिखें |
| getc ( ) /fgetc() | एक फ़ाइल से एक वर्ण पढ़ें |
| putw ( ) | एक फ़ाइल में एक संख्या लिखें |
| getw ( ) | एक फ़ाइल से संख्या पढ़ें |
| fputs ( ) | एक फ़ाइल में एक स्ट्रिंग लिखें |
| fgets ( ) | एक फ़ाइल से एक स्ट्रिंग पढ़ें |
| fread() | एक फ़ाइल से पूरा रिकॉर्ड पढ़ें |
| fwrite() | एक फाइल में पूरा रिकॉर्ड लिखें |
fprintf ( ) और fscanf ( ) फ़ंक्शन
- fprintf ( )
वाक्य रचना इस प्रकार है -
fprintf (file pointer, " control string”, variable list)
उदाहरण के लिए,
FILE *fp; fprintf (fp, "%d%c”, a,b);
- fscanf ( )
वाक्य रचना इस प्रकार है -
fscanf(file pointer, "control string”, & variable list);
उदाहरण के लिए,
FILE *fp; fscanf (fp, "%d%c”, &a,&b);
putc( ) और getc ( ) फंक्शन
- पुटक ( )
इसका उपयोग किसी फ़ाइल में वर्ण लिखने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
putc (char ch, FILE *fp);
उदाहरण के लिए,
FILE *fp; char ch; putc(ch, fp);
- सी ( ) प्राप्त करें
इसका उपयोग फ़ाइल से किसी वर्ण को पढ़ने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
char getc (FILE *fp);
उदाहरण के लिए,
FILE *fp; char ch; ch = getc(fp);

putw ( ) और getw ( ) फंक्शन
- पुट ( )
इसका उपयोग किसी संख्या को फाइल में लिखने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
putw (int num, FILE *fp);
उदाहरण के लिए,
FILE *fp; int num; putw(num, fp);
- getw ( )
इसका उपयोग किसी फ़ाइल से किसी संख्या को पढ़ने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
int getw (FILE *fp);
उदाहरण के लिए,
FILE *fp; int num; num = getw(fp);

fput c ( ) और fgetc ( ) फ़ंक्शन
- fputc( )
इसका उपयोग किसी फ़ाइल में वर्ण लिखने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
fputc (char ch, FILE *fp);
उदाहरण के लिए,
FILE *fp; char ch; fputc (ch.fp);
- fgetc( )
इसका उपयोग किसी फ़ाइल से किसी वर्ण को पढ़ने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
fputc (char ch, FILE *fp);
उदाहरण के लिए,
FILE *fp; char ch; ch = fgetc(fp);
fgets ( ) और fputs ( ) फंक्शन
- fgets ( )
इसका उपयोग किसी फ़ाइल से एक स्ट्रिंग को पढ़ने के लिए किया जाता है।
वाक्य रचना इस प्रकार है
fgets (string variable, No. of characters, File pointer);
उदाहरण के लिए,
FILE *fp; char str [30]; fgets (str,30,fp);
- fputs ( )
इसका उपयोग फ़ाइल में स्ट्रिंग लिखने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
fputs (string variable, file pointer);
उदाहरण के लिए,
FILE *fp; char str[30]; fputs (str,fp);

फ़्रेड ( ) और fwrite ( ) फ़ंक्शन
- फ़्रेड ( )
इसका उपयोग एक बार में पूरे रिकॉर्ड को पढ़ने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
fread( & structure variable, size of (structure variable), no of records, file pointer);
उदाहरण के लिए,
struct emp{
int eno;
char ename [30];
float sal;
} e;
FILE *fp;
fread (&e, sizeof (e), 1, fp); - फराइट ( )
इसका उपयोग एक बार में संपूर्ण रिकॉर्ड लिखने के लिए किया जाता है।
वाक्य रचना इस प्रकार है -
fwrite( & structure variable , size of structure variable, no of records, file pointer);
उदाहरण के लिए,
struct emp{
int eno:
char ename [30];
float sal;
} e;
FILE *fp;
fwrite (&e, sizeof(e), 1, fp); उदाहरण कार्यक्रम
1 से 10 तक की संख्याओं को संग्रहीत करने और उन्हें प्रिंट करने के लिए C प्रोग्राम निम्नलिखित है -
//Program for storing no’s from 1 to 10 and print the same
#include<stdio.h>
int main( ){
FILE *fp;
int i;
fp = fopen ("num.txt", "w");
for (i =1; i<= 10; i++){
putw (i, fp);
}
fclose (fp);
fp =fopen ("num.txt", "r");
printf ("file content is");
for (i =1; i<= 10; i++){
i= getw(fp);
printf ("%d",i);
}
fclose (fp);
return 0;
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
file content is12345678910
एक फ़ाइल में 5 छात्रों के विवरण संग्रहीत करने के लिए एक और सी प्रोग्राम नीचे दिया गया है और इसे fread ( ) और fwrite ( ) का उपयोग करके प्रिंट करें -
उदाहरण
#include<stdio.h>
struct student{
int sno;
char sname [30];
float marks;
char temp;
};
main ( ){
struct student s[60];
int i;
FILE *fp;
fp = fopen ("student1.txt", "w");
for (i=0; i<2; i++){
printf ("enter details of student %d\n", i+1);
printf("student number:");
scanf("%d",&s[i].sno);
scanf("%c",&s[i].temp);
printf("student name:");
gets(s[i].sname);
printf("student marks:");
scanf("%f",&s[i].marks);
fwrite(&s[i], sizeof(s[i]),1,fp);
}
fclose (fp);
fp = fopen ("student1.txt", "r");
for (i=0; i<2; i++){
printf ("details of student %d are\n", i+1);
fread (&s[i], sizeof (s[i]) ,1,fp);
printf("student number = %d\n", s[i]. sno);
printf("student name = %s\n", s[i]. sname);
printf("marks = %f\n", s[i]. marks);
}
fclose(fp);
getch( );
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter details of student 1 student number:1 student name:bhanu student marks:50 enter details of student 2 student number:2 student name:priya student marks:69 details of student 1 are student number = 1 student name = bhanu marks = 50.000000 details of student 2 are student number = 2 student name = priya marks = 69.000000