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

C言語でファイルにランダムアクセスすることを説明する


C言語のファイルへのランダムアクセスは、次の関数を使用して実行できます-

  • ftell()
  • 巻き戻し()
  • fseek()

ftell()

ファイルptrの現在の位置を返します。

構文は次のとおりです-

int n = ftell (file pointer)

たとえば、

FILE *fp;
int n;
_____
_____
_____
n = ftell (fp);

− ftell()は、ファイルに入力された文字数をカウントするために使用されます。

巻き戻し()

ファイルptrをファイルの先頭に移動します。

構文は次のとおりです-

rewind (file pointer);

たとえば、

FILE *fp;
   -----
   -----
   rewind (fp);
   n = ftell (fp);
   printf ("%d”, n);

出力

出力は次のとおりです-

0 (always).

fseek()

これは、ファイルpntrがファイル内の特定の場所を指すようにすることです。

構文は次のとおりです-

fseek(file pointer, offset, position);

オフセット

  • 読み取りまたは書き込み中に移動する位置の数。
  • 負(または)正のいずれかになり得る場合。
    • ポジティブ-順方向。
    • ネガティブ–逆方向。

位置

次の3つの値を持つことができます-

  • 0 –ファイルの先頭。
  • 1 –現在の位置。
  • 2 –ファイルの終わり。

  • fseek(fp、0,2)-fpはファイルの終わりから0バイト前方に移動しました。

  • fseek(fp、0、0)–fpはファイルの先頭から0バイト前方に移動しました

  • fseek(fp、m、0)–fpはファイルの先頭からmバイト前方に移動しました。

  • fseek(fp、-m、2)–fpはファイルの終わりからmバイト後方に移動しました。

エラー

fseek()関数に関連するエラーは次のとおりです-

  • fseek(fp、-m、0);
  • fseek(fp、+ m、2);

  1. ユニオンにC言語でのポインタを説明する

    ユニオンはメモリロケーションと呼ばれ、さまざまなデータ型のいくつかの変数によって共有されます。 構文 構文は次のとおりです- union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; たとえば、 union sample{    int a;    float b;    char c; }

  2. C言語でのポインタアクセスの概念を説明する

    ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操