I/O C ভাষায় ইনপুট - আউটপুট ফাংশনকে বোঝায়।
উচ্চ স্তরের I/O
- এগুলি মানুষ সহজেই বুঝতে পারে
- সুবিধা হল বহনযোগ্যতা।
নিম্ন স্তরের I/O
- এগুলি কম্পিউটার দ্বারা সহজে বোঝা যায়৷
- সুবিধা হল যে কার্যকর করার সময় কম।
- অসুবিধা হল নন-পোর্টেবিলিটি।
উচ্চ স্তরের I/O ফাংশনগুলি
উচ্চ স্তরের ইনপুট - আউটপুট (I/O) ফাংশনগুলি নীচে ব্যাখ্যা করা হয়েছে −
ফাংশন | বর্ণনা |
---|---|
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 ( )
এটি একটি ফাইলে একটি অক্ষর লেখার জন্য ব্যবহৃত হয়৷
৷সিনট্যাক্স নিম্নরূপ -
putc (char ch, FILE *fp);
উদাহরণস্বরূপ,
FILE *fp; char ch; putc(ch, fp);
- c ( ) পান
এটি ফাইল থেকে একটি অক্ষর পড়ার জন্য ব্যবহৃত হয়৷
৷সিনট্যাক্স নিম্নরূপ -
char getc (FILE *fp);
উদাহরণস্বরূপ,
FILE *fp; char ch; ch = getc(fp);
putw ( ) এবং getw ( ) ফাংশন
- putw( )
এটি ফাইলে একটি সংখ্যা লেখার জন্য ব্যবহৃত হয়।
সিনট্যাক্স নিম্নরূপ -
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);
fread ( ) এবং fwrite ( ) ফাংশন
- fread ( )
এটি একটি সময়ে সম্পূর্ণ রেকর্ড পড়ার জন্য ব্যবহৃত হয়৷
সিনট্যাক্স নিম্নরূপ -
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 ( )
এটি একটি সময়ে একটি সম্পূর্ণ রেকর্ড লেখার জন্য ব্যবহৃত হয়৷
সিনট্যাক্স নিম্নরূপ -
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 জন শিক্ষার্থীর বিবরণ সংরক্ষণ করার জন্য আরেকটি C প্রোগ্রাম দেওয়া হল এবং 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