Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 고급 I/O 기능은 무엇입니까?

<시간/>

I/O는 C 언어의 입출력 기능을 말합니다.

고수준 I/O

  • 사람이 쉽게 이해할 수 있습니다.
  • 장점은 휴대성입니다.

저수준 I/O

  • 컴퓨터로 쉽게 이해할 수 있습니다.
  • 장점은 실행 시간이 짧다는 것입니다.
  • 단점은 휴대성이 없다는 것입니다.

고수준 I/O 기능

상위 레벨 입력 - 출력(I/O) 기능은 아래에 설명되어 있습니다 -

함수 설명
fprintf( ) 파일에 데이터 쓰기
fscanf( ) 파일에서 데이터 읽기
putc()/fputc() 파일에 문자 쓰기
getc() /fgetc() 파일에서 문자 읽기
퍼트( ) 파일에 숫자 쓰기
getw( ) 파일에서 숫자 읽기
출력( ) 파일에 문자열 쓰기
fget( ) 파일에서 문자열 읽기
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);

C 언어의 고급 I/O 기능은 무엇입니까?

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

C 언어의 고급 I/O 기능은 무엇입니까?

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( ) 함수

  • fget( )

파일에서 문자열을 읽는 데 사용됩니다.

구문은 다음과 같습니다.

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

예를 들어,

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

파일에 문자열을 쓰는 데 사용됩니다.

구문은 다음과 같습니다 -

fputs (string variable, file pointer);

예를 들어,

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

C 언어의 고급 I/O 기능은 무엇입니까?

fread( ) 및 fwrite( ) 함수

  • 후드( )

한 번에 전체 레코드를 읽는 데 사용됩니다.

구문은 다음과 같습니다 -

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

예시 프로그램

다음은 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명의 학생에 대한 세부 정보를 파일에 저장하고 fread( ) 및 fwrite( ) -

를 사용하여 동일한 내용을 인쇄하는 또 다른 C 프로그램입니다.

예시

#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