C의 파일 끝(EOF)

Muhammad Zeeshan 2023년10월12일
  1. C의 End of File(EOF)
  2. C에서 파일에 대한 작업
  3. C에서 EOF의 예
C의 파일 끝(EOF)

C에서 EOF를 표현하는 주제가 이 기사의 초점이 될 것입니다.

C의 End of File(EOF)

End of File으로 알려진 상황은 데이터 소스에서 읽을 수 있는 데이터가 더 이상 없을 때 컴퓨터의 운영 체제에서 발생합니다. 데이터 소스는 종종 파일 또는 스트림이라고 합니다.

End of File (EOF) 메시지가 표시되면 입력이 완료된 것입니다.

내용을 입력한 후 CtrlZ 키를 동시에 눌러 텍스트를 종료할 수 있습니다. 이것은 파일이 결론에 도달했으며 더 이상 읽을 것이 없다는 신호입니다.

C에서 파일 끝에 도달하면 getc() 함수는 EOF를 반환합니다. getc()는 성공하지 못한 경우 End of File(EOF)도 반환합니다.

따라서 getc()에서 제공한 값을 EOF와 비교하여 파일이 끝에 도달했는지 여부를 확인하는 것만으로는 충분하지 않습니다. C는 이 문제를 해결하기 위해 feof() 함수를 제공합니다.

이 함수는 파일 끝에 도달한 경우에만 0보다 큰 값을 반환합니다. 그렇지 않으면 0을 반환합니다.

C에서 파일에 대한 작업

대부분의 프로그램은 프로그램에서 검색된 정보를 저장하기 위해 개발되었습니다. 이러한 방법 중 하나는 획득한 정보를 파일로 저장하는 것입니다.

다음은 파일에서 수행할 수 있는 다양한 작업 목록입니다.

파일 생성

fopen 프로그램을 사용하고 a, a+, w, w++와 같은 특성을 지정하면 새 파일을 생성할 수 있습니다.

파일 열기

fopen 기능과 적절한 액세스 모드는 파일이 열릴 때마다 사용됩니다. 다음은 가장 자주 사용되는 몇 가지 파일 액세스 모드입니다.

  1. a를 누르면 파일이 검색됩니다. 파일이 성공적으로 열리면 fopen() 함수는 파일을 메모리에 로드하고 현재 읽고 있는 문자에 연결하는 포인터를 만듭니다.

    파일이 이미 존재하지 않으면 새 파일이 생성됩니다. 파일을 열 수 없는 경우 Null을 반환합니다.

  2. w 문자는 파일을 검색합니다. 파일이 이미 존재하는 경우 파일의 내용이 다시 작성됩니다.

    파일이 이미 존재하지 않으면 새 파일이 생성됩니다. 파일을 열 수 없는 경우 Null이 반환됩니다.

파일에서 수행해야 하는 활동을 수행하기 위해 파일 포인터로 알려진 특수 포인터가 사용되며 선언은 다음과 같습니다.

FILE *fp;

따라서 다음을 사용하여 파일을 열 수 있습니다.

fp = fopen("Shanii.txt", "w");

여기서 Shanii.txt는 열려는 파일이고 두 번째 매개변수는 파일 모드입니다.

파일 읽기

fscanffgets 기능은 파일에 대한 읽기 작업을 수행하는 데 사용됩니다. 이 두 방법 모두 scanfgets와 동일한 작업을 수행했지만 file pointer라는 추가 인수를 고려했습니다.

정보를 구성하려는 방법에 따라 파일을 문자별로 또는 라인별로 읽을 수 있습니다. 다음은 파일을 읽는 데 필요한 코드의 예입니다.

FILE* fp;
fp = fopen("shanii.txt", "r");
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);

파일 쓰기

파일 읽기에 사용되는 fprintffputs 함수는 파일 쓰기에도 사용할 수 있으며 프로세스는 파일 읽기와 매우 유사합니다. 파일에 쓸 때 사용할 명령은 다음과 같습니다.

FILE *fp;
fp = fopen("shanii.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);

파일 닫기

모든 작업이 성공적으로 완료된 후에는 항상 파일을 닫아야 합니다. 파일을 성공적으로 닫으려면 fclose 기능을 사용해야 합니다.

파일을 닫는 코드는 다음과 같습니다.

FILE *fp;
fp = fopen("fileName.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);
fclose(fp);

C에서 EOF의 예

예를 들어, shanii.txt라는 텍스트 파일의 내용을 화면에 표시하려면 다음 C 코드를 보십시오.

getc()의 값은 먼저 EOF와 비교됩니다.

int charac = getc(filepointer);

while (charac != EOF) {
  putchar(charac);
  charac = getc(filepointer);
}

그런 다음 feof()를 사용하여 두 번째 검사를 수행합니다. 이 검사는 파일 끝에 도달한 경우 프로그램이 Program has reached End-of-file만 출력하는지 확인합니다.

if (feof(filepointer)) {
  printf("\n Program has reached End-of-file");
}

그렇지 않으면 프로그램에 There was a problem가 표시됩니다.

소스 코드:

#include <stdio.h>

int main() {
  FILE *filepointer = fopen("shanii.txt", "r");
  int charac = getc(filepointer);

  while (charac != EOF) {
    putchar(charac);
    charac = getc(filepointer);
  }

  if (feof(filepointer)) {
    printf("\n Program has reached End-of-file");
  } else {
    printf("\n There was a problem");
  }
  fclose(filepointer);
  getchar();
  return 0;
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn