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

C++ 프로그램의 fread() 함수

<시간/>

주어진 작업은 C++에서 fread()의 작동을 보여주는 것입니다. 이 기사에서는 fread()에 전달되는 다양한 매개변수와 이 함수가 반환하는 내용도 살펴보겠습니다.

fread()는 스트림에서 데이터 블록을 읽는 C++의 내장 함수입니다. 이 함수는 스트림에서 "size" 바이트 크기의 각 개체 수를 계산하여 버퍼 메모리에 저장한 다음 읽은 총 바이트 양만큼 포인터를 전진시킵니다. 성공한 경우 읽은 바이트의 크기는 *count입니다.

구문

fread(void *buffer, size_t size, size_t count, FILE *file_stream);

매개변수

이 기능에는 4개의 매개변수가 모두 필요합니다. 매개변수를 이해합시다.

  • buffer - 스트림에서 읽은 바이트가 저장되는 버퍼 메모리 블록의 포인터입니다.

  • size - 읽을 각 요소의 크기를 바이트 단위로 정의합니다. (size_t는 unsigned int임).

  • count - 읽을 요소의 수입니다.\

  • file_stream - 바이트를 읽고자 하는 파일 스트림의 포인터.

반환 값

성공적으로 읽은 요소의 수가 반환됩니다.

읽기 오류가 발생하거나 파일 끝에 도달하면 반환되는 요소 수는 count 변수와 다릅니다.

#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
int main() {
   FILE* file_stream;
   char buf[100];
   file_stream = fopen("tp.txt", "r");
   while (!feof(file_stream)) //will read the file {
      // will read the contents of the file.
      fread(buf, sizeof(buf), 1, file_stream);
      cout << buf;
   }
   return 0;
}

tp.txt 파일에 다음 내용이 있다고 가정

튜토리얼 포인트

기여

여기 무엇이든

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

tutorialspoint
Contribution
anything here

예를 들어 개수가 0이고 크기가 0일 때 출력을 확인합시다.

#include <iostream>
#include <cstdio>
using namespace std; int main() {
   FILE *fp;
   char buffer[100];
   int retVal;
   fp = fopen("tpempty.txt","rb");
   retVal = fread(buffer,sizeof(buffer),0,fp);
   cout << "The count = 0, then return value = " << retVal << endl;
   retVal = fread(buffer,0,1,fp);
   cout << "The size = 0, then value = " << retVal << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

The count = 0, then return value = 0
The size = 0, then value = 0