C ++ fread () - Thư viện chuẩn C ++

Hàm fread () trong C ++ đọc một số ký tự được chỉ định từ luồng đầu vào đã cho.

nguyên mẫu fread ()

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

Các fread()chức năng đọc số đếm các đối tượng, mỗi kích thước kích thước byte từ dòng đầu vào nhất định. Nó tương tự như gọi fgetc () size times để đọc từng đối tượng. Theo số ký tự được đọc, chỉ báo vị trí tệp được tăng dần.

Giá trị kết quả của chỉ báo vị trí tệp cho luồng là không xác định nếu có bất kỳ lỗi nào xảy ra khi đọc tệp.

Nếu các đối tượng không thể sao chép tầm thường, thì hành vi đó là không xác định.

Nếu kích thước hoặc số lượng bằng 0, lệnh gọi tới freadsẽ trả về 0 và không có hành động nào khác được thực hiện.

Nó được định nghĩa trong tệp tiêu đề.

tham số fread ()

  • buffer: Con trỏ tới khối bộ nhớ để lưu các đối tượng.
  • size: Kích thước của từng đối tượng tính bằng byte.
  • count: Số đối tượng cần đọc.
  • stream: Dòng tệp để đọc dữ liệu từ đó.

fread () Giá trị trả về

Các fread()hàm trả về số lượng đối tượng đọc thành công. Nếu xảy ra lỗi hoặc điều kiện kết thúc tệp, giá trị trả về có thể nhỏ hơn số lượng.

Ví dụ 1: Hàm fread () hoạt động như thế nào

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Giả sử tệp chứa dữ liệu sau:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Khi bạn chạy chương trình, đầu ra sẽ là:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Ví dụ 2: Hàm fread () hoạt động như thế nào khi số lượng hoặc kích thước bằng 0

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Khi số lượng = 0, giá trị trả về = 0 Khi kích thước = 0, giá trị trả về = 0

thú vị bài viết...