文件的基本操作

文件的基本操作

文件是什么

与普通文件载体不同,文件是以硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

文件通常具有点+三个字母的文件扩展名,用于指示文件类型

例如,图片文件常常以KPEG格式保存并且文件扩展名为.jpg

文件一般分为程序文件数据文件

程序文件:源程序文件(后缀.c),目标文件(后缀为.obj),可执行程序(后缀为.exe)

数据文件:程序运行时所读写的数据

文件的使用

文件的操作

文件的打开,文件的读写,文件的关闭

如图所示:

在这里插入图片描述

文件指针

文件指针,又名文件类型指针,顾名思义,是专门指向文件的指针,用于对文件进行相关的操作

文件定义代码如下:

typedef struct {
int level;
unsigned flags;
char fd;
unsigned char hold;
int bsize;
unsigned char _FAR *buffer;
unsigned char _FAR *curp;
unsigned istemp;
short token;
} FILE;

文件指针格式如下:

    FILE* pf;

此处定义了一个文件指针变量pf,可以指向某个文件信息区,访问到该文件。

文件的打开与关闭

文件的打开,关闭需要用到两个函数:fopen()与fclose()。

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

fclose(): int fclose ( FILE * stream ).

fopen()的使用:

操作名操作条件(如果文件不存在)
r(只读)为了输入数据打开一个已经存才得文本文件出错
w(只写)为了输出数据打开一个文本文件建立新文件
a(追加)给文本中增加数据建立新文件
rb(只读)为了输入数据打开一个二进制文件出错
wb(只写)为了输出数据打开一个二进制文件建立新文件
ab(追加)给二进制文件尾增加数据出错

如果在后面加上+,则表示既可以读也可以写

fclose()的使用:

如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h 中的常量。

学会了fopen与fclose,我们就可以进行下列简单的操作:

这里我举的例子是(‘a’)

#include <stdio.h>
int main()
{
	FILE* p; 

	char ch=0; 

	if ((p = fopen("test.txt", "a")) == NULL){ //因为文件必须存在,所以设置一个错误出口
		printf("ERROR");

		exit(0); 
	}

	for (; ch != '\n';) //追加主体
	{
		scanf("%c", &ch);
		fputc(ch, p); 
	}
	fclose(p);
	return 0;
}

如果文本存在且原本内容为’ welcome to ’

那么运行后结果如下:

在这里插入图片描述

文件读写函数
fgetc()

fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回 EOF

int fgetc( FILE * fp );
fgets()

函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。

如果这个函数在读取最后一个字符之前就遇到一个换行符 ‘\n’ 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。

char *fgets( char *buf, int n, FILE *fp );
fputc()

函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF

int fputc( int c, FILE *fp );
fputs()

函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF

int fputs( const char *s, FILE *fp );

使用方法如下:

#include<stdio.h>

int main()
{
    FILE *fp;
    fp = fopen("test.txt","r+");
    int p = fputs("hehe", fp);
    fclose(fp);
    
    fp = fopen("test.txt", "r+");
	char *fm, arr[20];
    fm = fgets(arr,20,fp);
	printf("%s %s",fm,arr);
        
    return 0;
}

输出:

hehe hehe

本周对文件的学习到这里就结束啦!!

参考文献:

C语言第13课——文件读写

C语言文件操作(超详细版)

已经到底啦!!!

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值