C语言——文件操作相关的函数初步认识

文件操作相关函数及其作用

函数名 作用
fopen 打开文件
fclose 关闭文件
fgetc 字符输入
fputc 字符输出
fgets 文本行输入
fputs 文本行输出
fscanf 格式化输入
fprintf 格式化输出
fread 二进制输入
fwrite 二进制输出
fseek 根据文件指针的位置和偏移量定位指针
ftell 返回文件指针相对初始位置的偏移量
rewind 让文件指针的位置回到文件的起始位置
feof 文件的结束判定

文件的打开方式:
r:为了输入数据,打开一个已经存在的文本文件
“w”(只写) 为了输出数据,打开一个文本文件 建立一个新的文件
“a”(追加) 向文本文件尾添加数据
“rb”(只读) 为了输入数据,打开一个二进制文件
“wb”(只写) 为了输出数据,打开一个二进制文件 建立一个新的文件
“ab”(追加) 向一个二进制文件尾添加数据
“r+”(读写) 为了读和写,打开一个文本文件
“w+” (读写)为了读和写,建立一个新的文件
“a+” (读写)打开一个文件,在文件尾进行读写
“rb+” (读写)为了读和写打开一个二进制文件
“wb+”(读写)为了读和写,建立一个新的二进制文件
“ab+”(读写)打开一个文件,在二进制文件尾进行读写

函数名 适用范围
fgetc 所有输入流
fputc 所有输出流
fgets 所有输入流
fputs 所有输出流
fscanf 所有输出流
fprint 所有输出流
fread 文件
fwrite 文件

文件函数的内容

1. fclose的函数体
int fclose(FILE* stream);
返回值类型: 整型
参数: 要关闭的流(文件)

2. fopen的函数体
FILE * fopen(const char* filename, const char* mode);
返回值类型: 文件指针类型
参数: 要打开的文件名,以什么模式打开。如果打开失败,返回NULL

3. ftell的函数体
long int ftell(FILE* stream);
返回值类型: 长整型
参数: 移到偏移量

4. fseek的函数体
int fseek(FILE* stream,long int offset,int origin);
返回值类型: 整型
参数: 从起始开始偏移

5. rewind的函数体
void rewind(FILE* stream);
返回值类型:
参数: 回到当前位置

6. fgetc的函数体
int fgetc(FILE *stream);
返回值类型: ASCII码值(整型)
参数: 读一个流的字符

7. fgets的函数体
char *fgets(char *string , int size, FILE *stream);
返回值类型: 字符指针(先判断返回值是否为EOF或NULL)
参数: 从流里读取最多个数的字符串

8. fputc的函数体
int fputc(int c, FILE *stream);
返回值类型: 整型
参数: 写一个字符到一个流(文件)

9. fputs的函数体
int fputs(const char *string, FILE *stream);
返回值类型: 整型
参数: 写一个字符串到流

10. fread的函数体(二进制的读)
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
返回值类型: 无符号的整型
参数: 读取流的数据的大小个数,存到某处

11. fwrite的函数体(二进制的写)
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
返回值类型: 无符号整型
参数: 从某处将含有多少字节数的数据的个数写进流

12. feof的函数体
int feof(FILE *stream);
返回值类型: 整型
参数: 判断getc是否为EOF,gets是否为NULL(正常结束)

13. fprintf的函数体
int fprintf(FILE* stream, const char* format,[argument]);
返回值类型: 整型
参数: 把数据以某特定的格式写入流

14. fscanf的函数体
int fscanf(FILE* stream,const char* format,[argument]);
返回值类型: 整型
参数: 把数据以某种特定的格式从流读出来

代码如下:

#include <stdio.h>
int main()
{
   
	int a = 10000;
	FILE* pf = fopen("test.txt", "wb");
	fwrite(&a, 4, 1, pf);//二进制的形式写到文件中
	fclose(pf);
	pf = NULL;
	return 0;
}


#include <errno.h>
#include <string.h>

int main()
{
   
	FILE* pf = fopen("test.txt", "w");
	if(pf == NULL)
	{
   
		printf("%s\n", strerror(errno));
		return 0;
	}
	//写文件
	fputc('a', pf);
	fputc('b', pf);
	fputc('c', pf);

	fclose(pf);
	pf = NULL;

	return 0;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值