Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน I/O ระดับสูงในภาษา C มีอะไรบ้าง


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

ฟังก์ชัน I/O ระดับสูงในภาษา C มีอะไรบ้าง

ฟังก์ชัน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);

ฟังก์ชัน I/O ระดับสูงในภาษา C มีอะไรบ้าง

ฟังก์ชัน 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);

ฟังก์ชัน I/O ระดับสูงในภาษา C มีอะไรบ้าง

ฟังก์ชัน 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( & 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);

ตัวอย่างโปรแกรม

ต่อไปนี้เป็นโปรแกรม C สำหรับเก็บตัวเลขตั้งแต่ 1 ถึง 10 และพิมพ์เหมือนกัน -

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

รับด้านล่างเป็นโปรแกรม C อื่นสำหรับการจัดเก็บรายละเอียดของนักเรียน 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