ホームページ > バックエンド開発 > C#.Net チュートリアル > C言語ファイル操作解析の詳細説明とサンプルコード

C言語ファイル操作解析の詳細説明とサンプルコード

黄舟
リリース: 2016-12-14 17:25:14
オリジナル
1353 人が閲覧しました

C言語ファイルの動作分析

ファイル操作には、オープン操作や読み取りおよび書き込み操作に加えて、さらに一般的な操作がいくつかあります。これらの操作に関連する機能を以下に紹介します。

1. 位置ポインタを移動する関数

rewind 関数と fseek 関数、これら 2 つの関数のプロトタイプは次のとおりです:

void rewind(FILE *fp) 位置ポインタをファイルの先頭に移動します

int fseek (FILE *fp ,long int オフセット,int 原点); fseek 関数のパラメータの場合、位置ポインタを原点からのオフセットバイト数に移動します。原点には 3 つの値があります: SEEK_SET(0)— > ファイルの先頭 SEEK_CUR(1) - > 現在の位置 SEEK_END(2) - > ファイルの末尾。

注: 1) ファイルが追加モードで開かれている場合、書き込み時にこれら 2 つの機能は動作しません。位置ポインターがどこに移動されても、追加されたデータは常にファイルの末尾に追加されます。

2. その他よく使われる関数

1. ftell 関数

long int ftell(FILE *fp);

エラーが発生した場合は、現在位置ポインターからファイルの先頭までのバイト数を計算します。 1Lが戻ってきます。

ftell関数を使用してファイルサイズを計算します。

2.feof function

int feof(FILE *fp);

現在位置ポインタがファイルの末尾に到達したかどうかを検出し、ファイルの末尾に到達した場合は 0 以外の値を返します。 0を返します。

3.ferror関数

int ferror(FILE *fp);

ファイル操作中にエラーがあったかどうかを検出し、エラーが発生した場合は0以外の値を返し、それ以外の場合は0

4を返します。 Remove function

int Remove( const char *filename);

削除が成功した場合は0を返し、それ以外の場合は0以外の値を返します

5.rename function

int rename(const char *oldname) , const char *newname);

ファイルを置き換えます Rename、名前変更が成功した場合は 0 を返し、それ以外の場合は 0 以外の値を返します。

6.freopen関数

FILE* freopen(const char *filename,const char *mode,FILE *stream);

リダイレクトされた入出力を実装します。この関数はデータをテストするときによく使用されます。

7.fclose function

int fclose(FILE *stream);

ストリームを閉じます。成功した場合は 0 を返し、それ以外の場合は、ファイルに対する各操作の後にストリームを閉じる必要があることに注意してください。データが失われる可能性があります。

テストプログラム:

#include<stdio.h>
#include<stdlib.h>
  
int main(void)
{
  freopen("input.txt","r",stdin);
  freopen("output.txt","w+",stdout);
  int i;
  int a[10];
  for(i=0;i<10;i++)
  {
    scanf("%d",&a[i]);
  }
  for(i=0;i<10;i++)
  {
    printf("%d\n",a[i]);
  }
  return 0;
}
ログイン後にコピー

input.txtがプロジェクトディレクトリにすでに存在し、ファイル内のデータが1 2 -1 3 4 5 7 8 9であると仮定します。 10. 実行後、コンソールからデータを入力する必要はありません。プログラムは、結果を直接コンソールに出力せず、input.txt からデータを直接読み取り、その結果を output.txt に出力します。

読んでいただきありがとうございます。他の関連記事については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート