I/O फंक्शन्स के प्रकार
- हाई-लेवल I/O: मनुष्यों द्वारा आसानी से समझा जाता है, पोर्टेबल होता है।
- लो-लेवल I/O: कंप्यूटर द्वारा समझा जाता है, तेज़ होता है लेकिन नॉन-पोर्टेबल।
हाई-लेवल I/O फंक्शन्स की सूची
| फंक्शन | विवरण |
| fprintf() | फाइल में डेटा लिखना |
| fscanf() | फाइल से डेटा पढ़ना |
| putc() / fputc() | फाइल में कैरेक्टर लिखना |
| getc() / fgetc() | फाइल से कैरेक्टर पढ़ना |
| putw() | फाइल में इंटीजर लिखना |
| getw() | फाइल से इंटीजर पढ़ना |
| fputs() | फाइल में स्ट्रिंग लिखना |
| fgets() | फाइल से स्ट्रिंग पढ़ना |
| fread() | फाइल से पूरा रिकॉर्ड पढ़ना |
| fwrite() | फाइल में पूरा रिकॉर्ड लिखना |
मुख्य फंक्शन्स का विवरण
fprintf() और fscanf()
// लिखना
fprintf(fp, "control string", var_list);
// पढ़ना
fscanf(fp, "control string", &var_list);
putc() और getc()
putc(ch, fp); // कैरेक्टर लिखें
ch = getc(fp); // कैरेक्टर पढ़ें
putw() और getw()
putw(num, fp); // इंटीजर लिखें
num = getw(fp); // इंटीजर पढ़ें
fputc() और fgetc()
fputc(ch, fp); // कैरेक्टर लिखें
ch = fgetc(fp); // कैरेक्टर पढ़ें
fputs() और fgets()
fputs(str, fp); // स्ट्रिंग लिखें
fgets(str, size, fp); // स्ट्रिंग पढ़ें
fread() और fwrite()
// स्ट्रक्चर वेरिएबल के लिए
fread(&struct_var, sizeof(struct_var), count, fp);
fwrite(&struct_var, sizeof(struct_var), count, fp);
उदाहरण प्रोग्राम्स
1. संख्याएं 1 से 10 तक फाइल में स्टोर और प्रिंट करना
#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: ");
for (i = 1; i <= 10; i++) {
int val = getw(fp);
printf("%d", val);
}
fclose(fp);
return 0;
}
File content: 12345678910
2. स्टूडेंट डिटेल्स स्टोर करना (fread/fwrite)
#include <stdio.h>
struct student {
int sno;
char sname[30];
float marks;
char temp;
};
int 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:\n", i+1);
fread(&s[i], sizeof(s[i]), 1, fp);
printf("Number: %d\nName: %s\nMarks: %f\n", s[i].sno, s[i].sname, s[i].marks);
}
fclose(fp);
return 0;
}
आउटपुट
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:
Number: 1 Name: bhanu Marks: 50.000000
Details of student 2:
Number: 2 Name: priya Marks: 69.000000