关于fopen函数

在C语言中,操作文件之前必须先打开文件;

<stdio.h> 头文件中的 fopen() 函数即可打开文件,它的用法为:

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

FILE 是 <stdio.h> 头文件中的一个结构体,它专门用来保存文件信息。

filename为文件名(或者文件路径),mode为打开方式,它们都是字符串。


怎样判断文件是否打开成功:

FILE *fp;
if( (fp=fopen("data.txt","rb") == NULL ){
    printf("operation failed!\n");
    exit(0);  //退出程序(结束程序)
}

打开文件出错时,fopen() 将返回一个空指针,也就是 NULL,我们可以利用这一点来判断文件是否打开成功


最基本的文件打开方式

打开方式说明
r以“只读”方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。
w以“写入”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容,再创建一个新文件。
a以“追加”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾。
r+以“读写”方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。
w+以“写入/更新”方式打开文件,相当于w和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容, 再创建一个新文件。
a+以“追加/更新”方式打开文件,相当于a和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾。
-----以上六种为读写权限字符串(必须声明);下面两种为读写方式字符串(默认为“t”),
b二进制文件。
t文本文件,如果不写,默认为"t"。

读写权限和读写方式组合使用的两种正确方式:

  1. 将读写方式放在读写权限的末尾,例如:“rb”
  2. 将读写方式放在读写权限的中间,例如:“rb+”

文件使用完毕应如何关闭

文件一旦使用完毕,应该用 fclose() 函数把文件关闭,以释放相关资源,避免数据丢失。

fclose(fp);

文件正常关闭时,fclose() 的返回值为0,如果返回非零值则表示有错误发生。


示例:

#include<stdio.h>
#include<stdlib.h>
int main() {							
//本段循环代码读取部分可省略不看,重点在打开与关闭
	FILE *fp;
	char ch;
	int count=0;
	if((fp=fopen("data.txt","r"))==NULL) { 
		printf("operation failed!\n");
		exit(0);
	}
	while((ch=fgetc(fp))!=EOF) { 		//循环读取文件的每一行数据
		if(ch=='#'||ch=='H'||ch=='T') {	
			count++;
		} else if(ch=='@') {
			count+=2;
		}
	}
	printf("%d",count);
	fclose(fp);   //关闭文件的正确方式
	return 0;
}

小结:

  1. fopen:<stdio.h> 头文件中打开文件的函数。
  2. FILE: <stdio.h> 头文件中的一个结构体,它专门用来保存文件信息。
  3. fclose:<stdio.h> 头文件中关闭先前fopen()打开的文件的函数,此动作会让缓冲区内的数据写入文件中, 并释放系统所提供的文件资源。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值