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 |
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);
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);
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);
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