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) に注目してください。