【C语言】对文件进行操作相关函数的使用方法

目录

1.fopen和fclose函数的使用方法

2.fgetc和fputc函数的使用方法

3.fgets和fputs函数的使用方法

4.fptintf和fscanf的使用方法


1.fopen和fclose函数的使用方法

open函数用于打开一个文件,并返回一个文件指针,以供后续的文件操作使用。它的函数原型如下:

FILE *fopen(const char *filename, const char *mode);

参数filename是一个字符串,表示要打开的文件名。参数mode是一个字符串,表示打开文件的模式,包括以下几种:

  • "r":只读模式,打开一个已存在的文件,如果文件不存在,打开失败。
  • "w":写入模式,打开一个文件用于写入,如果文件已经存在,则清空文件内容,如果文件不存在,则创建新文件。
  • "a":追加模式,打开一个文件用于追加写入,如果文件不存在,则创建新文件。
  • "r+":读写模式,打开一个已存在的文件,允许读写,如果文件不存在,打开失败。
  • "w+":读写模式,打开一个文件用于读写,如果文件已经存在,则清空文件内容,如果文件不存在,则创建新文件。
  • "a+":读写模式,打开一个文件用于读写,如果文件不存在,则创建新文件,并允许追加写入。

fopen函数返回一个指向FILE结构的指针,如果打开文件失败,返回NULL。

fclose函数用于关闭一个已打开的文件。它的函数原型如下:

int fclose(FILE *stream);

参数stream是一个指向FILE结构的指针,表示要关闭的文件指针。fclose函数返回0表示成功,返回EOF表示失败。

下面是一个使用fopen和fclose函数的示例:

#include<stdio.h>
int main()
{
	FILE* ptr = fopen("text.txt", "w");
	if (prt = NULL)
	{
		perror("fopen");
		return 1;
	}

	//对文件操作


	if (fclose(ptr) == EOF)
	{
		printf("关闭文件失败\n");
		return 1;
	}
	return 0;
}

这是我们对文件操作大概的一个框架,希望大家熟悉掌握。

2.fgetc和fputc函数的使用方法

fgetc函数的使用方法:

  1. 包含头文件:#include &lt;stdio.h>
  2. 打开文件并获取文件指针:FILE *fptr = fopen("filename", "r");
  3. 使用fgetc函数从文件中读取一个字符:int c = fgetc(fptr);
  4. 判断文件结尾或读取到的字符是否有效:if (c != EOF) { /*处理读取到的字符*/ }
  5. 关闭文件:fclose(fptr);

fputc函数的使用方法:

  1. 包含头文件:#include &lt;stdio.h>
  2. 打开文件并获取文件指针:FILE *fptr = fopen("filename", "w");
  3. 使用fputc函数写入一个字符到文件中:fputc(character, fptr);
  4. 关闭文件:fclose(fptr);

说明:

  • fgetc函数用于从文件中读取一个字符,并返回读取到的字符的ASCII码值(以整数形式)。
  • fputc函数用于将一个字符写入到文件中。
  • 打开文件时,第二个参数不同可以实现不同的文件操作方式;"r"表示只读,"w"表示只写(若文件不存在则创建,若文件存在则清空内容),"a"表示追加写入(若文件不存在则创建)。
#include<stdio.h>
int main()
{
	FILE* prt = fopen("text.txt", "r");
	if (prt == NULL)
	{
		perror("fopen");
		return 1;
	}
	int ch = fgetc(prt);
	printf("%c", ch);

	if (fclose(prt) == EOF)
	{
		printf("关闭文件失败\n");
		return 1;
	}
	return 0;
}
#include<stdio.h>
int main()
{
	FILE* prt = fopen("text.txt", "w");
	if (prt == NULL)
	{
		perror("fopen");
		return 1;
	}
	fputc('a', prt);
	if (fclose(prt) == EOF)
	{
		printf("关闭文件失败\n");
		return 1;
	}
	return 0;
}

3.fgets和fputs函数的使用方法

fgets和fputs是C语言中用于对文件进行读写操作的函数。

fgets函数用于从文件中读取一行内容。其原型为:

char *fgets(char *str, int n, FILE *stream);

参数str是一个指向字符数组的指针,用于存储读取到的字符串;参数n表示最多读取的字符数;参数stream是一个指向文件的指针,表示从哪个文件中读取。fgets函数会从文件中读取一行内容,包括换行符,最多读取n-1个字符,并将其存储到str中。如果读取成功,返回值是str的地址;如果文件结尾或出错,返回NULL。

下面是一个使用fgets函数的例子:

int main()
{
	FILE* prt = fopen("file.txt", "r");
	if (prt == NULL)
	{
		perror("fopen");
		return 1;
	}
	char arr[100];
	while (fgets(arr, sizeof(arr), prt) != NULL)
	{
		printf("%s", arr);
	}
	if (fclose(prt) == EOF)
	{
		perror("prt");
		return 1;
	}
	return 0;
}

这段代码打开一个名为file.txt的文件,并一行一行地读取文件内容,并输出到屏幕上。

fputs函数用于将字符串写入文件中。其原型为:

int fputs(const char *str, FILE *stream);

参数str是一个指向要写入的字符串的指针;参数stream是一个指向文件的指针,表示要写入到哪个文件中。fputs函数会将字符串str写入到文件中,并返回非负值表示成功,返回EOF表示失败。

下面是一个使用fputs函数的例子:

int main()
{
	FILE* prt = fopen("file.txt", "w");
	if (prt == NULL)
	{
		perror("fopen");
		return 1;
	}
	char arr[100] = { "hello world!!!" };
	fputs(arr, prt);
	if (fclose(prt) == EOF)
	{
		perror("prt");
		return 1;
	}
	return 0;
}

这段代码将字符串"Hello, World!"写入到一个名为file.txt的文件中。如果文件不存在,则会创建该文件;如果文件已存在,则会清空文件内容并将字符串写入。

4.fptintf和fscanf的使用方法

fptintf和fscanf是C语言中用于文件处理的函数。

  1. fptintf函数用于将数据格式化输出到指定文件中。它的函数原型为:

    int fprintf(FILE *stream, const char *format, ...);
    
    • stream:要写入的文件指针,可以是标准输出(stdout)、标准错误(stderr)、或者通过fopen函数打开的文件指针。
    • format:格式化输出的字符串。
    • ...:可选的参数,用于替代format中的格式化占位符。

    例如,下面的代码将字符串写入到文件中:

    #include<stdio.h>
    int main()
    {
    	FILE* prt = fopen("file.txt", "w");
    	if (prt == NULL)
    	{
    		perror("fopen");
    		return 1;
    	}
    	fprintf(prt, "hello world!!!");
    
    	if (fclose(prt) == EOF)
    	{
    		perror("prt");
    		return 1;
    	}
    	return 0;
    }
  2. 运行该代码后,将在当前目录下创建一个名为file.txt的文件,内容为"Hello, World!!!"。

  3. fscanf函数用于从文件中读取格式化数据。它的函数原型为:

    int fscanf(FILE *stream, const char *format, ...);
    
    • stream:要读取的文件指针,可以是标准输入(stdin)或者通过fopen函数打开的文件指针。
    • format:格式化输入的字符串。
    • ...:可选的参数,用于接收从文件中读取的数据。

    例如,下面的代码从文件中读取两个整数并计算它们的和:

    #include <stdio.h>
    
    int main() 
    {
        FILE *file = fopen("input.txt", "r");
        if (file != NULL)
        {
            int num1, num2;
            fscanf(file, "%d %d", &num1, &num2);
            printf("Sum: %d\n", num1 + num2);
            fclose(file);
        }
        return 0;
    }
    

    假设input.txt文件中的内容为"10 20",运行该代码后输出"Sum: 30"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值