Computer >> Máy Tính >  >> Lập trình >> lập trình C

Các chức năng I / O cấp cao trong ngôn ngữ C là gì?

I / O đề cập đến các chức năng đầu vào - đầu ra trong ngôn ngữ C.

I / O cấp cao

  • Con người có thể dễ dàng hiểu được những điều này
  • Ưu điểm là tính di động.

I / O mức thấp

  • Máy tính có thể hiểu những điều này một cách dễ dàng.
  • Ưu điểm là thời gian thực hiện ít hơn.
  • Điểm bất lợi là không có tính di động.

Chức năng I / O cấp cao

Các chức năng đầu vào - đầu ra (I / O) mức cao được giải thích bên dưới -

Hàm Mô tả
fprintf () ghi dữ liệu vào tệp
fscanf () đọc dữ liệu từ tệp
putc () / fputc () ghi một ký tự vào tệp
getc () / fgetc () đọc ký tự từ tệp
putw () ghi một số vào tệp
getw () đọc số từ một tệp
fputs () ghi một chuỗi vào tệp
fgets () đọc chuỗi từ tệp
fread () đọc toàn bộ bản ghi từ một tệp
fwrite () ghi toàn bộ bản ghi vào một tệp
Hàm

fprintf () &fscanf ()

  • fprintf ()

Cú pháp như sau -

fprintf (file pointer, " control string”, variable list)

Ví dụ,

FILE *fp;
fprintf (fp, "%d%c”, a,b);
  • fscanf ()

Cú pháp như sau -

fscanf(file pointer, "control string”, & variable list);

Ví dụ,

FILE *fp;
fscanf (fp, "%d%c”, &a,&b);

hàm putc () và getc ()

  • putc ()

Nó được sử dụng để ghi một ký tự vào một tệp.

Cú pháp như sau -

putc (char ch, FILE *fp);

Ví dụ,

FILE *fp;
char ch;
putc(ch, fp);
  • lấy c ()

Nó được sử dụng để đọc một ký tự từ tệp.

Cú pháp như sau -

char getc (FILE *fp);

Ví dụ,

FILE *fp;
char ch;
ch = getc(fp);

Các chức năng I / O cấp cao trong ngôn ngữ C là gì?

Các hàm

putw () và getw ()

  • putw ()

Nó được sử dụng để ghi một số vào tệp.

Cú pháp như sau -

putw (int num, FILE *fp);

Ví dụ,

FILE *fp;
int num;
putw(num, fp);
  • getw ()

Nó được sử dụng để đọc một số từ một tệp.

Cú pháp như sau -

int getw (FILE *fp);

Ví dụ,

FILE *fp;
int num;
num = getw(fp);

Các chức năng I / O cấp cao trong ngôn ngữ C là gì?

Hàm

fput c () và fgetc ()

  • fputc ()

Nó được sử dụng để ghi một ký tự vào tệp.

Cú pháp như sau -

fputc (char ch, FILE *fp);

Ví dụ,

FILE *fp;
char ch;
fputc (ch.fp);
  • fgetc ()

Nó được sử dụng để đọc một ký tự từ một tệp.

Cú pháp như sau -

fputc (char ch, FILE *fp);

Ví dụ,

FILE *fp;
char ch;
ch = fgetc(fp);
Các hàm

fgets () và fputs ()

  • fgets ()

Nó được sử dụng để đọc một chuỗi từ một tệp.

Cú pháp như sau

fgets (string variable, No. of characters, File pointer);

Ví dụ,

FILE *fp;
char str [30];
fgets (str,30,fp);
  • fputs ()

Nó được sử dụng để ghi một chuỗi vào một tệp.

Cú pháp như sau -

fputs (string variable, file pointer);

Ví dụ,

FILE *fp;
char str[30];
fputs (str,fp);

Các chức năng I / O cấp cao trong ngôn ngữ C là gì?

hàm fread () và fwrite ()

  • fread ()

Nó được sử dụng để đọc toàn bộ bản ghi cùng một lúc.

Cú pháp như sau -

fread( & structure variable, size of (structure variable), no of records, file pointer);

Ví dụ,

struct emp{
   int eno;
   char ename [30];
   float sal;
} e;
FILE *fp;
fread (&e, sizeof (e), 1, fp);
  • fwrite ()

Nó được sử dụng để viết toàn bộ bản ghi cùng một lúc.

Cú pháp như sau -

fwrite( & structure variable , size of structure variable, no of records, file pointer);

Ví dụ,

struct emp{
   int eno:
   char ename [30];
   float sal;
} e;
FILE *fp;
fwrite (&e, sizeof(e), 1, fp);

Chương trình mẫu

Sau đây là chương trình C để lưu trữ các số từ 1 đến 10 và in giống nhau -

//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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

file content is12345678910

Dưới đây là một chương trình C khác để lưu trữ chi tiết của 5 sinh viên vào một tệp và in giống nhau bằng cách sử dụng fread () và fwrite () -

Ví dụ

#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( );
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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