C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++プログラムのfread()関数


与えられたタスクは、C ++でのfread()の動作を示すことです。この記事では、fread()に渡されるさまざまなパラメーターと、この関数が返すものについても説明します。

fread()は、ストリームからデータのブロックを読み取るC++の組み込み関数です。この関数は、ストリームから「サイズ」バイトのサイズのオブジェクトの数をカウントし、それらをバッファメモリに格納してから、読み取られたバイトの合計量だけポインタを進めます。成功した場合に読み取られるバイト数は、サイズ*countになります。

構文

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

パラメータ

この関数には、4つのパラメーターすべてが必要です。パラメータを理解しましょう。

  • buffer-これは、ストリームから読み取られたバイトが格納されるバッファメモリブロックのポインタです。

  • size-読み取る各要素のサイズをバイト単位で定義します。 (size_tはunsigned intです。)

  • count-読み取る要素の数。\

  • file_stream-バイトを読み取るファイルストリームのポインタ。

戻り値

正常に読み取られた要素の数が返されます。

読み取りエラーが発生した場合、またはファイルの終わりに達した場合、返される要素の数はカウント変数とは異なります。

#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

例を挙げて、カウントがゼロでサイズがゼロの場合の出力を確認しましょう。

#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

  1. C++で二重リンクリストのサイズを見つけるプログラム

    この問題では、二重にリンクされたリストが与えられます。私たちのタスクは、C++で二重リンクリストのサイズを見つけるプログラムを作成することです。 二重リンクリストは特殊なタイプのリンクリストであり、単一リンクリストと比較して、順方向と逆方向の両方の方法で簡単にナビゲーションできます。以下は、二重リンクリストの概念を理解するための重要な用語です。 リンク-リンクリストの各リンクには、要素と呼ばれるデータを格納できます。 次へ-リンクリストの各リンクには、次と呼ばれる次のリンクへのリンクが含まれています。 前-リンクリストの各リンクには、前と呼ばれる前のリンクへのリンクが含ま

  2. ツリーのサイズを計算するプログラムを作成する-C++での再帰

    この問題では、ツリーが与えられ、再帰を使用してツリーのサイズを計算するプログラムを作成することがタスクです。 ツリーのサイズは、ツリーに存在するノードの総数です。 問題を理解するために例を見てみましょう 上記の木のサイズは5です。 ツリーのサイズを見つけるには、左のサブツリーと右のサブツリーのサイズを追加してから、1ずつインクリメントする必要があります。再帰関数は、ツリーの左と右の両方のサブツリーに対して呼び出されます。また、サブツリーが見つからない場合は0を返します。 この方法を使用して解決された上記の例 木のサイズを見つけるには、 size(3)=size(5)+