주어진 작업은 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