ファイル演算子#関数に関するこの記事を読むだけで十分です

目次

fopen 関数と fclose 関数 

fputc 関数

fget 関数

 fget 関数

fput 関数

 fprintf 関数

fscanf 関数

sscanf 関数と sfrintf 関数

fseek 関数

ftll機能と巻き戻し機能

feof 関数と ferror 関数

fopen 関数と fclose 関数

ANSIC では、ファイルを開くには fopen 関数を使用し、ファイルを閉じるには fclose 関数を使用することを規定しています。

使い方はこちらの画像をご覧ください:

d906e934a4ea464eae0a4503e01deb4b.png  なお、指定ファイル名の書き方には、相対パスと絶対パスの2通りあります。

絶対パス: fopen("C:2023_wpk\\test._1_2\\test.txt","r"); のように、ハードディスクの名前から書く必要があります。

相対パス: 2 つのドットで始まり.. fopen("../../test.txt", "r"); のように上位パスを示します。 

ポイントで開始. fopen("test.txt","r"); のように現在のパスを示します。

全部で 10 の書き方があります。ここに "r" (読み取り専用) があります。他の人について知りたい場合は、私の他の記事を読むことができます。リンク: http://t.csdn.cn/nZY2t

それでは、例として「r」を取り上げ、コードで示してみましょう。

#define _CRT_SECURE_NO_WARNINGS 1
#include<errno.h>
#include<string.h>
#include<stdio.h>
int main()
{

	//读文件
	FILE* q = fopen("teat.txt", "r");
	char arr[1024] = { 0 };
	if (q == NULL)
	{
		//文件不存在报错
		printf("%s\n", strerror(errno));
	}
	//关闭文件
	fclose(q);
	q = NULL;//文件置空
	return 0;
}

fputc 関数

fputc はファイルを書き込むためのものです

        //
        fputc('b', q); に書き込みます。

文字 b を p に書き込みます。ここで、q はファイル ポインターであり、書き込む文字は ' ' で囲む必要があります。

 fget 関数

 printf("%c",fgetc(p));

説明: fgetc(p) は、p ストリームから文字を読み取り、それを printf で出力します。

int arr = fgetc(stdin);

fputc(arr,stdout);

標準入力から読み取り、画面上の標準出力に出力します。

 fget 関数

 

    fgets(arr, 1024, q); 

arr は配列、q はストリームで、q ストリームから arr 配列に最大 1024 文字を読み取ります。

fput 関数 

fputs("こんにちは",p);

fputs("こんにちは\n",p);

文字列 hello を p ストリームに書き込みます。改行の後に \n を追加します。

 fprintf 関数

比較ノート:

  fprintf と printf の違いは、標準ストリーム出力だけでなく、別のストリーム出力も指定できることです。つまり、他の場所に出力し、出力を指定することができます。

fscanf 関数

fscanf と scanf の違いは、標準のストリーム書き込みに加えて、別のストリーム書き込みも指定できる、つまり別の場所に書き込み、書き込みを指定できるということです。

sscanf 関数と sfrintf 関数

sprintf(q,"%d %f %s",aa,ad,as);//変数配列に出力
sprintf(出力場所, % 出力方法, 取得場所);//変数配列に出力

sscanf(q,"%d %f %s",&(za), &(zd), &(zs));//変数配列に書き込む(文字列)

sscanf(write location, % write method, get location);//変数配列に書き込む

fseek 関数

fseek は、読み取りおよび書き込み用のファイル ポインターを見つけます。

    //fseek(アドレス、オフセット、ファイルポインタの位置)
    fseek(p, 2, SEEK_CUR);//負数前方オフセット

次の点に注意してください。

//SEEK_CUR ファイルポインタの現在位置
//SEEK_END ファイルの終了位置
//SEEK_SETA ファイルの開始位置 

ftll機能と巻き戻し機能

    //ftell は、開始ポインタを基準としたファイル ポインタのオフセットを返します
    int ch =ftell(p);
    //rewind は、ファイル ポインタを開始位置に戻します
    rewind(p);

feof 関数と ferror 関数

//feof は、ファイルの終わりの理由を見つけます
//ferror ストリームのテスト エラー

使い方:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	FILE* p = fopen("teat.txt", "r");
	if (p == NULL)
	{
		perror("open file teat.txt");
		return 0;
	}
	int ch = 0;
	//fgetc 当读取失败的时候或者遇到文件结束的时候,都会返回EOF
	while (ch = fgetc(p) != EOF)
	{
		putchar(ch);
	}
	//判断读取结束的原因
	if (ferror(p)) {
		printf("error");
	}
	else if (feof(p)) {
		printf("end of file");
	}
}

おすすめ

転載: blog.csdn.net/2301_77479336/article/details/130057170